Hacked By AnonymousFox

Current Path : /home/missmand/public_html/js/lightbox/
Upload File :
Current File : /home/missmand/public_html/js/lightbox/template.tar

plugin.min.js000064400000010210151775523400007165 0ustar00tinymce.PluginManager.add("template",function(a){function b(b){return function(){var c=a.settings.templates;"string"==typeof c?tinymce.util.XHR.send({url:c,success:function(a){b(tinymce.util.JSON.parse(a))}}):b(c)}}function c(b){function c(b){function c(b){if(-1==b.indexOf("<html>")){var c="";tinymce.each(a.contentCSS,function(b){c+='<link type="text/css" rel="stylesheet" href="'+a.documentBaseURI.toAbsolute(b)+'">'}),b="<!DOCTYPE html><html><head>"+c+"</head><body>"+b+"</body></html>"}b=f(b,"template_preview_replace_values");var e=d.find("iframe")[0].getEl().contentWindow.document;e.open(),e.write(b),e.close()}var g=b.control.value();g.url?tinymce.util.XHR.send({url:g.url,success:function(a){e=a,c(e)}}):(e=g.content,c(e)),d.find("#description")[0].text(b.control.value().description)}var d,e,h=[];return b&&0!==b.length?(tinymce.each(b,function(a){h.push({selected:!h.length,text:a.title,value:{url:a.url,content:a.content,description:a.description}})}),d=a.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:h,onselect:c}}]},{type:"label",name:"description",label:"Description",text:"\xa0"},{type:"iframe",flex:1,border:1}],onsubmit:function(){g(!1,e)},width:a.getParam("template_popup_width",600),height:a.getParam("template_popup_height",500)}),void d.find("listbox")[0].fire("select")):void a.windowManager.alert("No templates defined")}function d(b,c){function d(a,b){if(a=""+a,a.length<b)for(var c=0;c<b-a.length;c++)a="0"+a;return a}var e="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),f="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),g="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),h="January February March April May June July August September October November December".split(" ");return c=c||new Date,b=b.replace("%D","%m/%d/%Y"),b=b.replace("%r","%I:%M:%S %p"),b=b.replace("%Y",""+c.getFullYear()),b=b.replace("%y",""+c.getYear()),b=b.replace("%m",d(c.getMonth()+1,2)),b=b.replace("%d",d(c.getDate(),2)),b=b.replace("%H",""+d(c.getHours(),2)),b=b.replace("%M",""+d(c.getMinutes(),2)),b=b.replace("%S",""+d(c.getSeconds(),2)),b=b.replace("%I",""+((c.getHours()+11)%12+1)),b=b.replace("%p",""+(c.getHours()<12?"AM":"PM")),b=b.replace("%B",""+a.translate(h[c.getMonth()])),b=b.replace("%b",""+a.translate(g[c.getMonth()])),b=b.replace("%A",""+a.translate(f[c.getDay()])),b=b.replace("%a",""+a.translate(e[c.getDay()])),b=b.replace("%%","%")}function e(b){var c=a.dom,d=a.getParam("template_replace_values");h(c.select("*",b),function(a){h(d,function(b,e){c.hasClass(a,e)&&"function"==typeof d[e]&&d[e](a)})})}function f(b,c){return h(a.getParam(c),function(a,c){"function"!=typeof a&&(b=b.replace(new RegExp("\\{\\$"+c+"\\}","g"),a))}),b}function g(b,c){function g(a,b){return new RegExp("\\b"+b+"\\b","g").test(a.className)}var i,j,k=a.dom,l=a.selection.getContent();c=f(c,"template_replace_values"),i=k.create("div",null,c),j=k.select(".mceTmpl",i),j&&j.length>0&&(i=k.create("div",null),i.appendChild(j[0].cloneNode(!0))),h(k.select("*",i),function(b){g(b,a.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(b.innerHTML=d(a.getParam("template_cdate_format",a.getLang("template.cdate_format")))),g(b,a.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(b.innerHTML=d(a.getParam("template_mdate_format",a.getLang("template.mdate_format")))),g(b,a.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(b.innerHTML=l)}),e(i),a.execCommand("mceInsertContent",!1,i.innerHTML),a.addVisual()}var h=tinymce.each;a.addCommand("mceInsertTemplate",g),a.addButton("template",{title:"Insert template",onclick:b(c)}),a.addMenuItem("template",{text:"Insert template",onclick:b(c),context:"insert"}),a.on("PreProcess",function(b){var c=a.dom;h(c.select("div",b.node),function(b){c.hasClass(b,"mceTmpl")&&(h(c.select("*",b),function(b){c.hasClass(b,a.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(b.innerHTML=d(a.getParam("template_mdate_format",a.getLang("template.mdate_format"))))}),e(b))})})});default/admin/settings_index.tpl000064400000002723152004101310013017 0ustar00<script>
$(function() {
    //$("#settings").tabs();
});
</script>

<div id="settings">
    <!--
    <ul>
        <li><a href="#tabs-1">Users</a></li>
        <li><a href="#tabs-2">Courses</a></li>
        <li><a href="#tabs-3">Platform</a></li>
        <li><a href="#tabs-4">Aenean lacinia</a></li>
        <li><a href="#tabs-5">Aenean lacinia</a></li>
        <li><a href="#tabs-6">Aenean lacinia</a></li>
        <li><a href="#tabs-7">Aenean lacinia</a></li>
        <li><a href="#tabs-8">Aenean lacinia</a></li>        
    </ul>
    -->        
    <div class="row">
    {% for block_item in blocks %}
        <div id="tabs-{{loop.index}}" class="span6">
            <div class="well_border">
                <h4>{{block_item.icon}} {{block_item.label}}</h4>                
                <div style="list-style-type:none">
                    {{ block_item.search_form }}
                </div>                           
                {% if block_item.items is not null %}
                    <ul>
    		    	{% for url in block_item.items %}
    		    		<li><a href="{{url.url}}">{{ url.label }}</a></li>	    	
    				{% endfor %}
                    </ul>    	
                {% endif %}
                
                {% if block_item.extra is not null %}
                    <div>
                    {{ block_item.extra }}
                    </div>
                {% endif %}                
            </div>
        </div>        
    {% endfor %}
    </div>
</div>
default/agenda/month.tpl000064400000044447152004101310011255 0ustar00<script>
function checkLength( o, n, min, max ) {
    if ( o.val().length > max || o.val().length < min ) {
        o.addClass( "ui-state-error" );
        updateTips( "Length of " + n + " must be between " +
            min + " and " + max + "." );
        return false;
    } else {
        return true;
    }
}
function clean_user_select() {
    //Cleans the selected attr     
    $('#users_to_send_id')
        .find('option')
        .removeAttr('selected')
        .end();
}

var region_value = '{{ region_value }}';
$(document).ready(function() {

    /*$("body").delegate(".datetime", "focusin", function(){
        $(this).datepicker({
            stepMinute: 10,            
            dateFormat: 'dd/mm/yy',
            timeFormat: 'hh:mm:ss'            
        });
    });*/
	
	var date = new Date();
	var d = date.getDate();
	var m = date.getMonth()+1;
	var y = date.getFullYear();
	
	$("#dialog-form").dialog({
		autoOpen: false,
		modal	: false, 
		width	: 580, 
		height	: 480,
        zIndex: 20000 // added because of qtip2
   	});
    
    $("#simple-dialog-form").dialog({
		autoOpen: false,
		modal	: false, 
		width	: 580, 
		height	: 480,
        zIndex: 20000 // added because of qtip2
   	});

	var title = $( "#title" ),
	content = $( "#content" ),	
	allFields = $( [] ).add( title ).add( content ), tips = $(".validateTips");	

	$('#users_to_send_id').bind('change', function() {
	    
	    var selected_counts = $("#users_to_send_id option:selected").size();
	    
	    //alert(selected_counts);        
       /* if (selected_counts >= 1 && $("#users_to_send_id option[value='everyone']").attr('selected') == 'selected') {        
            clean_user_select();
            
            $('#users_to_send_id option').eq(0).attr('selected', 'selected');
            //deleting the everyone
            $("#users_to_send_id").trigger("liszt:updated");
            deleted_items = true;
            
        }*/
        $("#users_to_send_id").trigger("liszt:updated");    
     /*
	    if (selected_counts >= 1) {	        	                
	        $('#users_to_send_id option').eq(0).removeAttr('selected');            
            
            
	    }
	    
	   */ 
	    //clean_user_select();
	    //$("#users_to_send_id").trigger("liszt:updated");
	    //alert($("#users_to_send_id option[value='everyone']").attr('selected'));
	    if ($("#users_to_send_id option[value='everyone']").attr('selected') == 'selected') {
            //clean_user_select();
            //$('#users_to_send_id option').eq(0).attr('selected', 'selected');
            //$("#users_to_send_id").trigger("liszt:updated");            
        }
    });
    
    $.datepicker.setDefaults( $.datepicker.regional[region_value] );
	
	var calendar = $('#calendar').fullCalendar({
		header: {
			left: 'today prev,next',
			center: 'title',
			right: 'month,agendaWeek,agendaDay',	
		},	        
        {% if use_google_calendar == 1 %}
            eventSources: [
                '{{ google_calendar_url }}',  //if you want to add more just add URL in this array
                {
                    className: 'gcal-event',           // an option!                    
                }
            ],
        {% endif %}
        
		buttonText: 	{{ button_text }}, 
		monthNames: 	{{ month_names }},
		monthNamesShort:{{ month_names_short }},
		dayNames: 		{{ day_names }},
		dayNamesShort: 	{{ day_names_short }},        
        firstHour: 8,
        firstDay: 1, 
		selectable	: true,
		selectHelper: true,
        
        viewDisplay: function(view) {
            /* When changing the view update the qtips */            
            var api = $('.qtip').qtip('api'); // Access the API of the first tooltip on the page
            if (api) {
                api.destroy();
                //api.render();
            }
        },
		//add event
		select: function(start, end, allDay, jsEvent, view) {
			//Removing UTC stuff                        
            var start_date = $.datepicker.formatDate("yy-mm-dd", start) + " " + start.toTimeString().substr(0, 8);
            var end_date  = $.datepicker.formatDate("yy-mm-dd", end) + " " + end.toTimeString().substr(0, 8);
                       
			$('#visible_to_input').show();
			$('#add_as_announcement_div').show();			
			$('#visible_to_read_only').hide();
			
			//Cleans the selected attr 	
		    clean_user_select();
                
            //Sets the 1st item selected by default
            //$('#users_to_send_id option').eq(0).attr('selected', 'selected');
			
			//Update chz-select
			$("#users_to_send_id").trigger("liszt:updated");
			
			if ({{ can_add_events }} == 1) {							
				var url = '{{ web_agenda_ajax_url }}&a=add_event&start='+start_date+'&end='+end_date+'&all_day='+allDay+'&view='+view.name;
                
                var start_date_value = $.datepicker.formatDate('{{ js_format_date }}', start);
                var end_date_value  = $.datepicker.formatDate('{{ js_format_date }}', end);
				
				$('#start_date').html(start_date_value + " " +  start.toTimeString().substr(0, 8));
                
				if (view.name != 'month') {
					$('#start_date').html(start_date_value + " " +  start.toTimeString().substr(0, 8));
					if (start.toDateString() == end.toDateString()) {					
						$('#end_date').html(' - '+end.toTimeString().substr(0, 8));
					} else {
						$('#end_date').html(' - '+start_date_value+" " + end.toTimeString().substr(0, 8));
					}
				} else {
					$('#start_date').html(start_date_value);
					$('#end_date').html(' ');					
				}
				$('#color_calendar').html('{{ type_label }}');
				$('#color_calendar').removeClass('group_event');
				$('#color_calendar').addClass('label_tag');				
				$('#color_calendar').addClass('{{ type_event_class }}');
				
				allFields.removeClass( "ui-state-error" );
                
				$("#dialog-form").dialog("open");		
				
				$("#dialog-form").dialog({				
					buttons: {
						'{{ "Add"|get_lang}}' : function() {
							var bValid = true;
							bValid = bValid && checkLength( title, "title", 1, 255 );
							//bValid = bValid && checkLength( content, "content", 1, 255 );
							
							var params = $("#add_event_form").serialize();						
							$.ajax({
								url: url+'&'+params,
								success:function(data) {
									calendar.fullCalendar("refetchEvents");
									calendar.fullCalendar("rerenderEvents");
									$("#dialog-form").dialog("close");										
								}							
							});
						},
					},				
					close: function() {		
						$("#title").attr('value', '');
						$("#content").attr('value', '');					
					}
				});		
	            //Don't follow the link
	            return false;
				calendar.fullCalendar('unselect');
                //Reload events
                calendar.fullCalendar("refetchEvents");
                calendar.fullCalendar("rerenderEvents");              
			}
		},	
		eventRender: function(event, element) {        
            if (event.attachment) {
                element.qtip({            
                    hide: {
                        delay: 2000
                    },
		            content: event.attachment,
		            position: { at:'top right' , my:'bottom right'},	
		        }).removeData('qtip'); // this is an special hack to add multiple qtip in the same target
                
            }
            
			if (event.description) {
				element.qtip({
                    hide: {
                        delay: 2000
                    },
		            content: event.description,
		            position: { at:'top left' , my:'bottom left'},	
		        });                
			}
	        
	    },
		eventClick: function(calEvent, jsEvent, view) {             
            //var start_date 	= Math.round(calEvent.start.getTime() / 1000);
            var start_date = $.datepicker.formatDate("yy-mm-dd", calEvent.start) + " " + calEvent.start.toTimeString().substr(0, 8);
            
            if (calEvent.allDay == 1) {				
                var end_date 	= '';				
            } else {			
                var end_date 	= '';	
                if (calEvent.end && calEvent.end != '') {
                    //var end_date 	= Math.round(calEvent.end.getTime() / 1000);				
                    var end_date  = $.datepicker.formatDate("yy-mm-dd", calEvent.end) + " " + calEvent.end.toTimeString().substr(0, 8);
                }
            }

			//edit event
			if (calEvent.editable) {	       
				
				$('#visible_to_input').hide();                
                $('#add_as_announcement_div').hide();
                
                {% if type != 'admin' %}
                    $('#visible_to_read_only').show();                    
                    $("#visible_to_read_only_users").html(calEvent.sent_to);
				{% endif %}
                    
                $('#color_calendar').html('{{type_label}}');            
                $('#color_calendar').addClass('label_tag');								
                $('#color_calendar').removeClass('course_event');
                $('#color_calendar').removeClass('personal_event');
                $('#color_calendar').removeClass('group_event');				
                $('#color_calendar').addClass(calEvent.type+'_event');	
                
                my_start_month = calEvent.start.getMonth() +1;
                
                $('#start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear());

                if (end_date != '') {
                    my_end_month = calEvent.end.getMonth() +1;
                    $('#end_date').html(' '+calEvent.end.getDate() +"/"+ my_end_month +"/"+calEvent.end.getFullYear());
                }

                $("#title").attr('value', calEvent.title);
                $("#content").attr('value', calEvent.description);			
                
				allFields.removeClass( "ui-state-error" );
				
				$("#dialog-form").dialog("open");
	
				var url = '{{web_agenda_ajax_url}}&a=edit_event&id='+calEvent.id+'&start='+start_date+'&end='+end_date+'&all_day='+calEvent.allDay+'&view='+view.name;
				var delete_url = '{{web_agenda_ajax_url}}&a=delete_event&id='+calEvent.id;
				
				$("#dialog-form").dialog({
					buttons: {
                        '{{ "ExportiCalConfidential"|get_lang }}' : function() {                                            
                            url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";                                
                            window.location.href = url;                                
						},
						'{{ "ExportiCalPrivate"|get_lang }}': function() { 
                            url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";			
                            window.location.href = url;
						},
                        '{{ "ExportiCalPublic"|get_lang }}': function() { 
                            url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";			
                            window.location.href = url;
						},                        
						'{{ "Edit"|get_lang }}' : function() {
							
							var bValid = true;
							bValid = bValid && checkLength( title, "title", 1, 255 );							
							
							var params = $("#add_event_form").serialize();						
							$.ajax({
								url: url+'&'+params,
								success:function() {
									calEvent.title 			= $("#title").val();
									calEvent.start 			= calEvent.start;
									calEvent.end 			= calEvent.end;									
									calEvent.allDay         = calEvent.allDay;
									calEvent.description 	= $("#content").val();
																	
									calendar.fullCalendar('updateEvent', 
											calEvent,
											true // make the event "stick"
									);
									
									$("#dialog-form").dialog("close");										
								}							
							});
						},
						'{{ "Delete"|get_lang }}': function() { 
							$.ajax({
								url: delete_url,
								success:function() {
									calendar.fullCalendar('removeEvents',										
										calEvent										
									);								
									calendar.fullCalendar("refetchEvents");
									calendar.fullCalendar("rerenderEvents");
									$("#dialog-form").dialog( "close" );		
								}
							});
						}
					},				
					close: function() {		
						$("#title").attr('value', '');
						$("#content").attr('value', '');				
					}
				});
			} else { //simple form    
                my_start_month = calEvent.start.getMonth() +1;
                $('#simple_start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear());

                if (end_date != '') {
                    my_end_month = calEvent.end.getMonth() +1;
                    $('#simple_start_date').html(calEvent.start.getDate() +"/"+ my_start_month +"/"+calEvent.start.getFullYear() +" - "+calEvent.start.toLocaleTimeString());
                    $('#simple_end_date').html(' '+calEvent.end.getDate() +"/"+ my_end_month +"/"+calEvent.end.getFullYear() +" - "+calEvent.end.toLocaleTimeString());
                }
                
                $("#simple_title").html(calEvent.title);
                $("#simple_content").html(calEvent.description);	                
                $("#simple-dialog-form").dialog("open");
                
                $("#simple-dialog-form").dialog({
					buttons: {
						'{{"ExportiCalConfidential"|get_lang}}' : function() {                                            
                                url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=confidential";			
                                window.location.href = url;
                                
						},
						'{{"ExportiCalPrivate"|get_lang}}': function() { 
                                url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=private";			
                                window.location.href = url;
						},
                        '{{"ExportiCalPublic"|get_lang}}': function() { 
                                url =  "ical_export.php?id=" + calEvent.id+'&course_id='+calEvent.course_id+"&class=public";			
                                window.location.href = url;
						}
					}
				});
                
            }
		},
		editable: true,		
		events: "{{web_agenda_ajax_url}}&a=get_events",
		eventDrop: function(event, day_delta, minute_delta, all_day, revert_func) {		
			$.ajax({
				url: '{{web_agenda_ajax_url}}',
				data: {
					a:'move_event', id: event.id, day_delta: day_delta, minute_delta: minute_delta
				}
			});
		},
        eventResize: function(event, day_delta, minute_delta, revert_func) {
            $.ajax({
				url: '{{web_agenda_ajax_url}}',
				data: {
					a:'resize_event', id: event.id, day_delta: day_delta, minute_delta: minute_delta
				}
			});        
        },
		axisFormat: 'HH(:mm)',
		timeFormat: 'HH:mm{ - HH:mm}',		
		loading: function(bool) {
			if (bool) $('#loading').show();
			else $('#loading').hide();
		}		
	});	
});
</script>

<div id="simple-dialog-form" style="display:none;">
    <div style="width:500px">
        <form name="form-simple" class="form-vertical" >        
            <div class="control-group">
                <label class="control-label"><b>{{"Date"|get_lang}}</b></label>			
                <div class="controls">
                    <span id="simple_start_date"></span><span id="simple_end_date"></span>                
                </div>					
            </div>
            <div class="control-group">			
                <label class="control-label"><b>{{"Title"|get_lang}}</b></label>
                <div class="controls">				
                    <div id="simple_title"></div>
                </div>
            </div>

            <div class="control-group">			
                <label class="control-label"><b>{{"Description"|get_lang}}</b></label>			
                <div class="controls">
                    <div id="simple_content"></div>
                </div>
            </div>
        </form>
    </div>
</div>

<div id="dialog-form" style="display:none;">
	<div style="width:500px">
	<form class="form-horizontal" id="add_event_form" name="form">
	    
        {% if visible_to is not null %}
    	    <div id="visible_to_input" class="control-group">                      
                <label class="control-label" for="date">{{"To"|get_lang}}</label>                
                <div class="controls">
                    {{visible_to}}                   
                </div>                  
            </div>
        {% endif %}        
         <div id="visible_to_read_only" class="control-group" style="display:none">                      
                <label class="control-label" for="date">{{"To"|get_lang}}</label>                
                <div class="controls">
                    <div id="visible_to_read_only_users"></div>                  
                </div>                  
         </div>        	
		<div class="control-group">					
            <label class="control-label" for="date">{{"Agenda"|get_lang}}</label>			
			<div class="controls">
				<div id="color_calendar"></div>
			</div>					
		</div>
		<div class="control-group">					
			<label class="control-label" for="date">{{"Date"|get_lang}}</label>			
			<div class="controls">
				<span id="start_date"></span><span id="end_date"></span>                
			</div>					
		</div>
		<div class="control-group">			
			<label class="control-label" for="name">{{"Title"|get_lang}}</label>			
			<div class="controls">
				<input type="text" name="title" id="title" size="40" />				
			</div>
		</div>
				
		<div class="control-group">			
			<label class="control-label" for="name">{{"Description"|get_lang}}</label>			
			<div class="controls">
				<textarea name="content" id="content" class="span3" rows="5"></textarea>
			</div>
		</div>	
		
        {% if type == 'course' %}
		<div id="add_as_announcement_div">
    		 <div class="control-group">                
                <label></label>
                <div class="controls">                    
                    <label class="checkbox inline" for="add_as_annonuncement">
                        {{ "AddAsAnnouncement"|get_lang }} ({{ "SendEmail" | get_lang }})
                        <input type="checkbox" name="add_as_annonuncement" id="add_as_annonuncement" />                    
                    </label>                    
                </div>
            </div>
        </div>
		{% endif %}
	</form>
	</div>
</div>
<div id="loading" style="margin-left:150px;position:absolute;display:none">{{"Loading"|get_lang}}...</div>
<div id="calendar"></div>default/auth/courses_categories.php000064400000025635152004101310013530 0ustar00<?php
/* For licensing terms, see /license.txt */

/**
* View (MVC patter) for courses categories
* @author Christian Fasanando <christian1827@gmail.com> - Beeznest
* @package chamilo.auth
*/
$stok = Security::get_token();
?>
<script>
    $(document).ready( function() {
        $('.star-rating li a').live('click', function(event) {
        var id = $(this).parents('ul').attr('id');
        $('#vote_label2_' + id).html("<?php echo get_lang('Loading'); ?>");
            $.ajax({
                url: $(this).attr('data-link'),
                success: function(data) {
                    $("#rating_wrapper_"+id).html(data);
                    if(data == 'added') {
                        //$('#vote_label2_' + id).html("{'Saved'|get_lang}");
                    }
                    if(data == 'updated') {
                        //$('#vote_label2_' + id).html("{'Saved'|get_lang}");
                    }
                }
            });
        });
    });
</script>

<?php if (intval($_GET['hidden_links']) != 1) { ?>

<div class="actions">
    <form class="form-search" method="post" action="<?php echo api_get_self(); ?>?action=subscribe&amp;hidden_links=0">
        <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
        <input type="hidden" name="search_course" value="1" />
        <input type="text" name="search_term" value="<?php echo (empty($_POST['search_term']) ? '' : api_htmlentities(Security::remove_XSS($_POST['search_term']))); ?>" />
        &nbsp;<button class="search" type="submit"><?php echo get_lang('SearchCourse'); ?></button>
    </form>
</div>
<?php
    $hidden_links = 0;
} else {
    $hidden_links = 1;
}
?>
<div class="row">
    <div class="span3">
        <div id="course_category_well" class="well">
            <ul class="nav nav-list">
            <?php
            if (!empty($browse_course_categories)) {
                echo '<a class="btn" href="'.api_get_self().'?action=display_random_courses">'.get_lang('RandomPick').'</a><br /><br />';

                echo '<li class="nav-header">'.get_lang('CourseCategories').'</li>';

                // level 1
                foreach ($browse_course_categories[0] as $category) {
                    $category_name = $category['name'];
                    $category_code = $category['code'];
                    $count_courses_lv1 = $category['count_courses'];

                    if ($code == $category_code) {
                        $category_link = '<strong>'.$category_name.' ('.$count_courses_lv1.')</strong>';
                    } else {
                        if (!empty($count_courses_lv1)) {
                            $category_link = '<a href="'. api_get_self().'?action=display_courses&amp;category_code='.$category_code.'&amp;hidden_links='.$hidden_links.'">'.$category_name.' ('.$count_courses_lv1.') </a>';
                        } else {
                            $category_link = ''.$category_name.' ('.$count_courses_lv1.')';
                        }
                    }
                    echo '<li>'.$category_link.'</li>';

                    // level 2
                    if (!empty($browse_course_categories[$category_code])) {
                        foreach ($browse_course_categories[$category_code] as $subcategory1) {
                            $subcategory1_name = $subcategory1['name'];
                            $subcategory1_code = $subcategory1['code'];
                            $count_courses_lv2 = $subcategory1['count_courses'];
                            if ($code == $subcategory1_code) {
                                $subcategory1_link = '<strong>'.$subcategory1_name.' ('.$count_courses_lv2.')</strong>';
                            } else {
                                $subcategory1_link = '<a href="'. api_get_self().'?action=display_courses&amp;category_code='.$subcategory1_code.'&amp;hidden_links='.$hidden_links.'">'.$subcategory1_name.' ('.$count_courses_lv2.') </a> ';
                            }
                            echo '<li style="margin-left:20px;">'.$subcategory1_link.'</li>';
                        }

                        // level 3
                        if (!empty($browse_course_categories[$subcategory1_code])) {
                            foreach ($browse_course_categories[$subcategory1_code] as $subcategory2) {
                                $subcategory2_name = $subcategory2['name'];
                                $subcategory2_code = $subcategory2['code'];
                                $count_courses_lv3 = $subcategory2['count_courses'];
                                if ($code == $subcategory2_code) {
                                    $subcategory2_link = '<strong>'.$subcategory2_name.' ('.$count_courses_lv3.')</strong>';
                                } else {
                                    $subcategory2_link = '<a href="'. api_get_self().'?action=display_courses&amp;category_code='.$subcategory2_code.'&amp;hidden_links='.$hidden_links.'">'.$subcategory2_name.'</a> ('.$count_courses_lv3.')';
                                }
                                echo '<li style="margin-left:40px;">'.$subcategory2_link.'</li>';
                            }
                        }
                    }
                }
            }
            ?>
        </div>
    </div>

    <div class="span9">
        <?php
        if (!empty($message)) { Display::display_confirmation_message($message, false); }
        if (!empty($error)) { Display::display_error_message($error, false); }

        if (!empty($content)) { echo $content; }

        if (!empty($search_term)) {
            echo "<p><strong>".get_lang('SearchResultsFor')." ".Security::remove_XSS($_POST['search_term'])."</strong><br />";
        }

        $ajax_url = api_get_path(WEB_AJAX_PATH).'course.ajax.php?a=add_course_vote';

        if (!empty($browse_courses_in_category)) {

            foreach ($browse_courses_in_category as $course) {
                // if course is closed, don't show it.
                if ($course['visibility'] == COURSE_VISIBILITY_CLOSED) {
                    continue;
                }
                // course isn't closed
                $title      = cut($course['title'], 70);
                $tutor_name = $course['tutor'];

                $creation_date = substr($course['creation_date'],0,10);
                $count_connections = $course['count_connections'];

                $course_path = api_get_path(SYS_COURSE_PATH).$course['directory'];   // course path

                if (file_exists($course_path.'/course-pic85x85.png')) {
                    $course_medium_image = api_get_path(WEB_COURSE_PATH).$course['directory'].'/course-pic85x85.png'; // redimensioned image 85x85
                } else {
                    $course_medium_image = api_get_path(WEB_IMG_PATH).'without_picture.png'; // without picture
                }

                $rating = Display::return_rating_system('star_'.$course['real_id'], $ajax_url.'&amp;course_id='.$course['real_id'], $course['point_info']);

                echo '<div class="well_border"><div class="row">';
                    echo '<div class="span2">';
                        echo '<div class="thumbnail">';
                        if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
                            echo '<a class="ajax" href="'.api_get_path(WEB_CODE_PATH).'inc/ajax/course_home.ajax.php?a=show_course_information&amp;code='.$course['code'].'" title="'.$icon_title.'" rel="gb_page_center[778]">';
                            echo '<img src="'.$course_medium_image.'" alt="" />';
                            echo '</a>';
                        } else {
                            echo '<img src="'.$course_medium_image.'" alt="'.$title.'"/>';
                        }
                        echo '</div>';//thumb
                    echo '</div>';

                    echo '<div class="span4">';
                    $teachers = CourseManager::get_teacher_list_from_course_code_to_string($course['code']);
                    $teachers = '<h5>'.$teachers.'</h5>';
                    echo '<div class="categories-course-description"><h3>'.cut($title, 60).'</h3>'.$teachers.$rating.'</div>';

                    echo '<p>';
                    // we display the icon to subscribe or the text already subscribed
                    echo '<div class="btn-toolbar">';

                    if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
                        echo '<a class="ajax btn" href="'.api_get_path(WEB_CODE_PATH).'inc/ajax/course_home.ajax.php?a=show_course_information&amp;code='.$course['code'].'" title="'.$icon_title.'" class="thickbox">'.get_lang('Description').'</a>';
                    }

                    // Get access type for course button ("enter" or/and "register")
                    $access_type = CourseManager::get_access_link_by_user(api_get_user_id(), $course);

                    // Go To Course button (only if admin, if course public or if student already subscribed)
                    if ($access_type && in_array('enter', $access_type)) {
                        echo ' <a class="btn btn-primary" href="'.  api_get_course_url($course['code']).'">'.get_lang('GoToCourse').'</a>';
                    }

                    // Register button
                    if ($access_type && in_array('register', $access_type)) {
                         echo ' <a class="btn btn-primary" href="'. api_get_self().'?action=subscribe_course&amp;sec_token='.$stok.'&amp;subscribe_course='.$course['code'].'&amp;search_term='.$search_term.'&amp;category_code='.$code.'">'.get_lang('Subscribe').'</a>';
                    }

                    // If user is already subscribed to the course
                    if (!api_is_anonymous() && in_array($course['code'], $user_coursecodes)) {
                        if ($course['unsubscribe'] == UNSUBSCRIBE_ALLOWED) {
                            echo ' <a class="btn btn-primary" href="'. api_get_self().'?action=unsubscribe&amp;sec_token='.$stok.'&amp;unsubscribe='.$course['code'].'&amp;search_term='.$search_term.'&amp;category_code='.$code.'">'.get_lang('Unsubscribe').'</a>';
                        }
                        echo '<br />';
                        echo '<br />';
                        echo Display::label(get_lang("AlreadyRegisteredToCourse"), "info");
                    }
                    echo '</div>';
                    echo '</p>';
                    echo '</div>';
                    echo '<div class="span2">';
                        echo '<div class="course-block-popularity"><span>'.get_lang('ConnectionsLastMonth').'</span><div class="course-block-popularity-score">'.$count_connections.'</div></div>';
                    echo '</div>';
                echo '</div></div>';
            }
        } else {
            if (!isset($_REQUEST['subscribe_user_with_password']) && !isset($_REQUEST['subscribe_course'])) {
                echo Display::display_warning_message(get_lang('ThereAreNoCoursesInThisCategory'));
            }
        }
        ?>
    </div>
</div>
default/auth/categories_list.php000064400000002215152004101310013005 0ustar00<?php
/* For licensing terms, see /license.txt */

/**
* View (MVC patter) for creating course category
* @author Christian Fasanando <christian1827@gmail.com> - Beeznest
* @package chamilo.auth
*/

// Acces rights: anonymous users can't do anything usefull here.
api_block_anonymous_users();

$stok = Security::get_token();

?>

<!-- Actions: The menu with the different options in cathe course management -->
<div id="actions" class="actions">
    
	&nbsp;<a href="<?php echo api_get_self() ?>?action=sortmycourses"><?php echo Display::return_icon('back.png', get_lang('Back'),'','32'); ?></a>
    
</div>

<?php
    if (!empty($message)) { Display::display_confirmation_message($message, false); }
    if (!empty($error)) { Display::display_error_message($error, false); }
?>
    <form name="create_course_category" method="post" action="<?php echo api_get_self() ?>?action=createcoursecategory">
        <input type="hidden" name="sec_token" value="<?php echo $stok ?>">
        <input type="text" name="title_course_category" />
        <button type="submit" class="save" name="create_course_category"><?php echo get_lang('AddCategory') ?></button>
    </form>default/auth/courses_list.php000064400000036471152004101310012356 0ustar00<?php
/* For licensing terms, see /license.txt */

/**
* View (MVC patter) for courses
* @author Christian Fasanando <christian1827@gmail.com> - Beeznest
* @package chamilo.auth
*/

// Acces rights: anonymous users can't do anything usefull here.
api_block_anonymous_users();
$stok = Security::get_token();
$courses_without_category = $courses_in_category[0];

?>

<!-- Actions: The menu with the different options in cathe course management -->
<div id="actions" class="actions">
    <?php if ($action != 'createcoursecategory') { ?>
	&nbsp;<a href="<?php echo api_get_self(); ?>?action=createcoursecategory"><?php echo Display::return_icon('new_folder.png', get_lang('CreateCourseCategory'),'','32'); ?></a>
    <?php } ?>
</div>
    
<?php 
if (!empty($message)) {
    Display::display_confirmation_message($message, false); 
}   
        
// COURSES WITH CATEGORIES
if (!empty($user_course_categories)) {
       foreach ($user_course_categories as $row) {
           echo Display::page_subheader($row['title']);
           echo '<a name="category'.$row['id'].'"></a>';
           
           if (isset($_GET['categoryid']) && $_GET['categoryid'] == $row['id']) { ?>
            <!-- We display the edit form for the category -->            
            
            <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
                <input type="hidden" name="edit_course_category" value="<?php echo $row['id']; ?>" />
                <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
                <input type="text" name="title_course_category" value="<?php echo $row['title']; ?>" />
                <button class="save" type="submit" name="submit_edit_course_category"><?php echo get_lang('Ok'); ?></button>
            </form>            
            <?php } ?>
            
            
            <!-- display category icons -->
            <?php 
            $max_category_key = count($user_course_categories);
            if ($action != 'unsubscribe') { ?>
                <a href="courses.php?action=sortmycourses&amp;categoryid=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>#category<?php echo $row['id']; ?>">
                <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
                </a>

                <?php if ($row['id'] != $user_course_categories[0]['id']) { ?>
                        <a href="courses.php?action=<?php echo $action ?>&amp;move=up&amp;category=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
                        <?php echo Display::return_icon('up.png', get_lang('Up'),'',22); ?>
                        </a>
                <?php } else { ?>
                    <?php echo Display::return_icon('up_na.png', get_lang('Up'),'',22); ?> 
               <?php } ?>

                <?php if ($row['id'] != $user_course_categories[$max_category_key - 1]['id']) { ?>
                    <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;category=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
                    <?php echo Display::return_icon('down.png', get_lang('Down'),'',22); ?>
                    </a>
                <?php } else { ?>
                    <?php echo Display::return_icon('down_na.png', get_lang('Down'),'',22); ?>
                <?php } ?>
                <a href="courses.php?action=deletecoursecategory&amp;id=<?php echo $row['id']; ?>&amp;sec_token=<?php echo $stok; ?>">
                <?php echo Display::display_icon('delete.png', get_lang('Delete'), array('onclick' => "javascript: if (!confirm('".addslashes(api_htmlentities(get_lang("CourseCategoryAbout2bedeleted"), ENT_QUOTES, api_get_system_encoding()))."')) return false;"),22) ?>
                </a>	                   
            <?php }
            echo '<br /><br />';
            // Show the courses inside this category            
            echo '<table class="data_table">';
            
            $number_of_courses = count($courses_in_category[$row['id']]);
            $key = 0;
            if (!empty($courses_in_category[$row['id']])) {
                foreach ($courses_in_category[$row['id']] as $course) {
            ?>
                    <tr>
                        <td>
                        <a name="course<?php echo $course['code']; ?>"></a>
                        <strong><?php echo $course['title']; ?></strong><br />
                        <?php
                        if (api_get_setting('display_coursecode_in_courselist') == 'true') { echo $course['visual_code']; }
                        if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') { echo " - "; }
                        if (api_get_setting('display_teacher_in_courselist') == 'true') { echo $course['tutor']; }
                        ?>
                        </td>
                        <td valign="top">
                        <!-- edit -->
                        <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) {
                                $edit_course = Security::remove_XSS($_GET['edit']); ?>

                                    <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
                                    <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
                                    <input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
                                    <select name="course_categories">
                                    <option value="0"><?php echo get_lang("NoCourseCategory"); ?></option>
                                    <?php foreach ($user_course_categories as $row) { ?>
                                        <option value="<?php echo $row['id'] ?>"><?php echo $row['title']; ?></option>
                                    <?php } ?>
                                    </select>
                                    <button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok'); ?></button>
                                    </form>
                        <?php }  ?>

                        <div style="float:left;width:110px;"> 
                        <?php if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
                                $icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
                        ?>
                        <a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code'] ?>" title="<?php echo $icon_title ?>" class="thickbox"><?php echo Display::return_icon('info.png', $icon_title,'','22') ?>
                           <?php } ?>	                            	</a>

                        <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) { ?>
                              <?php echo Display::display_icon('edit_na.png', get_lang('Edit'),'',22); ?>   
                        <?php } else { ?>	                            
                            <a href="courses.php?action=<?php echo $action; ?>&amp;edit=<?php echo $course['code']; ?>&amp;sec_token=<?php echo $stok; ?>">
                                <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
                                </a>
                        <?php } ?>	                                    

                        <?php if ($key > 0) { ?>
                            <a href="courses.php?action=<?php echo $action; ?>&amp;move=up&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
                            <?php echo Display::display_icon('up.png', get_lang('Up'),'',22); ?>
                            </a>
                        <?php } else { ?>
                            <?php echo Display::display_icon('up_na.png', get_lang('Up'),'',22); ?>
                        <?php } ?>

                        <?php if ($key < $number_of_courses - 1) { ?>
                                <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
                                <?php echo Display::display_icon('down.png', get_lang('Down'),'',22); ?>
                                </a>
                        <?php } else { ?>	
                            <?php echo Display::display_icon('down_na.png', get_lang('Down'),'',22); ?>
                        <?php } ?>  

                      </div>
                      <div style="float:left; margin-right:10px;">
                        <?php if ($course['status'] != 1) {
                                if ($course['unsubscr'] == 1) {
                        ?>

                            <form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding()))?>')) return false">
                                <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
                                <input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />                                    	
                                 <button class="btn" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
                                <?php echo get_lang('Unsubscribe'); ?>
                                </button>
                                </form>
                      </div>
                          <?php }
                        }
                        $key++;
                    }
                    echo '</table>';
            }
    }
}

echo Display::page_subheader(get_lang('NoCourseCategory'));

echo '<table class="data_table">';
// COURSES WITHOUT CATEGORY
if (!empty($courses_without_category)) {
    $number_of_courses = count($courses_without_category);
    $key = 0;

    foreach ($courses_without_category as $course) { 
        echo '<tr>';
        ?>

        <td>
            <a name="course<?php echo $course['code']; ?>"></a>
            <strong><?php echo $course['title']; ?></strong><br />                
            <?php
            if (api_get_setting('display_coursecode_in_courselist') == 'true') { echo $course['visual_code']; }
            if (api_get_setting('display_coursecode_in_courselist') == 'true' && api_get_setting('display_teacher_in_courselist') == 'true') { echo " - "; }
            if (api_get_setting('display_teacher_in_courselist') == 'true') { echo $course['tutor']; }
            ?>
        </td>

        <td valign="top">


            <!-- the edit icon OR the edit dropdown list -->
            <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) {
                $edit_course = Security::remove_XSS($_GET['edit']);
            ?>                
            <div style="float:left;">
            <form name="edit_course_category" method="post" action="courses.php?action=<?php echo $action; ?>">
                <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
                <input type="hidden" name="course_2_edit_category" value="<?php echo $edit_course; ?>" />
                <select name="course_categories">
                    <option value="0"><?php echo get_lang("NoCourseCategory"); ?></option>
                    <?php foreach ($user_course_categories as $row) { ?>
                        <option value="<?php echo $row['id']; ?>"><?php echo $row['title']; ?></option>
                    <?php } ?>
                </select>
                <button class="save" type="submit" name="submit_change_course_category"><?php echo get_lang('Ok') ?></button>
            </form><br />
            </div>                
            <?php } ?>

            <div style="float:left; width:110px">
            <?php
            if (api_get_setting('show_courses_descriptions_in_catalog') == 'true') {
            $icon_title = get_lang('CourseDetails') . ' - ' . $course['title'];
            ?>
            <a href="<?php echo api_get_path(WEB_CODE_PATH); ?>inc/ajax/course_home.ajax.php?a=show_course_information&code=<?php echo $course['code'] ?>" title="<?php echo $icon_title ?>" class="thickbox">
                <?php echo Display::return_icon('info.png', $icon_title, '','22'); ?>
            </a>
            <?php } ?>

             <?php if (isset($_GET['edit']) && $course['code'] == $_GET['edit']) {   ?>               
                    <?php echo Display::display_icon('edit_na.png', get_lang('Edit'),'',22); ?>
                  <?php } else { ?>                                                    
                    <a href="courses.php?action=<?php echo $action; ?>&amp;edit=<?php echo $course['code']; ?>&amp;sec_token=<?php echo $stok; ?>">
                    <?php echo Display::display_icon('edit.png', get_lang('Edit'),'',22); ?>
                    </a>                        
             <?php } ?>       

            <!-- up /down icons-->                
            <?php if ($key > 0) { ?>
                    <a href="courses.php?action=<?php echo $action; ?>&amp;move=up&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
                    <?php echo Display::display_icon('up.png', get_lang('Up'),'',22) ?>
                    </a>
            <?php } else {
                    echo Display::display_icon('up_na.png', get_lang('Up'),'',22);
                  } 

                  if ($key < $number_of_courses - 1) { ?>
                    <a href="courses.php?action=<?php echo $action; ?>&amp;move=down&amp;course=<?php echo $course['code']; ?>&amp;category=<?php echo $course['user_course_cat']; ?>&amp;sec_token=<?php echo $stok; ?>">
                    <?php echo Display::display_icon('down.png', get_lang('Down'),'',22); ?>
                    </a>
            <?php } else {
                    echo Display::display_icon('down_na.png', get_lang('Down'),'',22);
                  }?>
                </div>
                 <div style="float:left; margin-right:10px;">
                  <!-- cancel subscrioption-->
            <?php if ($course['status'] != 1) {
                    if ($course['unsubscr'] == 1) {
            ?>
                        <!-- changed link to submit to avoid action by the search tool indexer -->                           
                        <form action="<?php echo api_get_self(); ?>" method="post" onsubmit="javascript: if (!confirm('<?php echo addslashes(api_htmlentities(get_lang("ConfirmUnsubscribeFromCourse"), ENT_QUOTES, api_get_system_encoding())) ?>')) return false;">
                            <input type="hidden" name="sec_token" value="<?php echo $stok; ?>">
                            <input type="hidden" name="unsubscribe" value="<?php echo $course['code']; ?>" />
                            <button class="btn" value="<?php echo get_lang('Unsubscribe'); ?>" name="unsub">
                                <?php echo get_lang('Unsubscribe'); ?>
                            </button>
                        </form>
                        </div>
              <?php }
                }
              ?>
            </td>
            </tr>
            <?php 
            $key++;
        }
    }
?>
</table>
default/auth/layout.php000064400000000632152004101310011143 0ustar00<?php
/* For licensing terms, see /license.txt */

/**
* Layout (principal view) used for structuring other views  
* @author Christian Fasanando <christian1827@gmail.com> - Beeznest
* @package chamilo.auth
*/

// Acces rights: anonymous users can't do anything usefull here.
api_block_anonymous_users();


// Header
Display::display_header('');

// Display
echo $content;

// Footer
Display::display_footer();default/auth/error_log000064400000001755152004101310011041 0ustar00[09-May-2026 03:30:09 Europe/Paris] PHP Fatal error:  Uncaught Error: Class 'Security' not found in /home/missmand/public_html/learning/old/main/template/default/auth/courses_categories.php:9
Stack trace:
#0 {main}
  thrown in /home/missmand/public_html/learning/old/main/template/default/auth/courses_categories.php on line 9
[09-May-2026 03:30:10 Europe/Paris] PHP Fatal error:  Uncaught Error: Call to undefined function api_block_anonymous_users() in /home/missmand/public_html/learning/old/main/template/default/auth/courses_list.php:11
Stack trace:
#0 {main}
  thrown in /home/missmand/public_html/learning/old/main/template/default/auth/courses_list.php on line 11
[09-May-2026 03:30:11 Europe/Paris] PHP Fatal error:  Uncaught Error: Call to undefined function api_block_anonymous_users() in /home/missmand/public_html/learning/old/main/template/default/auth/layout.php:11
Stack trace:
#0 {main}
  thrown in /home/missmand/public_html/learning/old/main/template/default/auth/layout.php on line 11
default/course_description/index.tpl000064400000007410152004101310013710 0ustar00{{javascript}}

<script type="text/javascript">

{% if is_allowed_to_edit %}
    var sec_token = '{{sec_token}}';
{% endif %}

    
 function delete_entry(name, btn){   
    if(!confirm("{{'ConfirmYourChoice'|get_lang}}")){
        return false;
    } 

    var item = $('#'+name);
    var id = item.attr('data-id'); 
    var c_id = item.attr('data-c_id'); 

    var f = function(data){
        if(data.success){
            item.remove();
        }
        message.update(data);
        $(btn).removeClass("loading");
    };
    CourseDescription.del(c_id, id, f);
    $(btn).addClass("loading");
 }

 function delete_all(){
    if(!confirm("{{'ConfirmYourChoice'|get_lang}}")){
        return false;
    } 
    
    var f = function(data){
        if(data.success){
            var item = $('.course_descriptions');
            item.remove();
        }
        message.update(data);
    };
    CourseDescription.delete_by_course({{c_id}}, {{session_id}}, f);
    
 }
 
</script>

{% for message in messages %}
    {{ message }}
{% endfor %}

{% if is_allowed_to_edit %}
    <div class="btn-toolbar actions-bar" >
        <div class="btn-group edit new">
            {% for type in types %}        
                <a href="{{root}}&amp;action=add&amp;description_type={{type.id}}" class="btn "> 
                    <img title="{{type.title}}" alt="{{type.title}}" src="{{type.icon|icon(32)}} ">
                </a>    
            {% endfor %}
        </div>
        <div class="btn-group edit">
            <a href="{{root}}&amp;action=import_csv" class="btn import_csv" title="{{'ImportCSV'|get_lang}}">
                <i class="size-32 icon-import-csv"></i>
            </a>
            <a href="{{root}}&amp;action=export_csv" class="btn export_csv" title="{{'ExportAsCSV'|get_lang}}">
                <i class="size-32 icon-export-csv"></i>
            </a>
            <a href="javascript:void(0)" onclick="delete_all();return false;" class="btn delete_all" title="{{'DeleteAll'|get_lang}}">
                <i class="size-32 icon-delete-all"></i>
            </a>
        </div>
    </div>
{% endif %}

<ul style="list-style: none; margin-left:0;" class="course_descriptions">
{% for description in descriptions %}
    <li id="description_{{description.id}}" class="course_description" data-id="{{description.id}}" data-c_id="{{description.c_id}}" data-type="course_description">
        <div class="title sectiontitle">
            {% if is_allowed_to_edit %}
                <div class="pull-right element-actions">
                {% if session_id == description.session_id %}                    
                    <a href="{{root}}&amp;action=delete&amp;id={{description.id}}" 
                       onclick="delete_entry('description_{{description.id}}', this); return false;"
                       title="{{'Delete'|get_lang}}">
                        <i class="size-22 icon-delete"></i>
                    </a>

                    <a href="{{root}}&amp;action=edit&amp;id={{description.id}}" 
                       title="{{'Edit'|get_lang}}">
                        <i class="size-22 icon-edit"></i>
                    </a>
                {% else %}
                    <img title="{{'EditionNotAvailableFromSession'|get_lang}}" 
                         alt="{{'EditionNotAvailableFromSession'|get_lang}}" 
                         src="{{'edit_na.png'|icon(22)}}" 
                         style="vertical-align:middle;">
                {% endif %}
                </div>
            {% endif %}
            
            <img title="{{description.type.title}}" alt="{{description.type.title}}" src="{{description.type.icon|icon(32)}}" class="icon">
            {{description.title}}
        </div>
        <div class="sectioncomment">
            {{description.content}}
        </div>
    </li>
{% endfor %}
</ul>default/course_description/edit.tpl000064400000001677152004101310013537 0ustar00{{javascript}}

{% for message in messages %}
    {{ message }}
{% endfor %}

{% if is_allowed_to_edit %}
    <div class="btn-toolbar actions-bar" >
        <div class="btn-group">
            <a href="{{root}}&amp;action=listing" class="btn" title="{{'ImportCSV'|get_lang}}">
                <i class="size-32 icon-back"></i>
            </a>
        </div>
        <div class="btn-group edit new">
            {% for type in types %}        
                <a href="{{root}}&amp;action=add&amp;description_type={{type.id}}" class="btn "> 
                    <img title="{{type.title}}" alt="{{type.title}}" src="{{type.icon|icon(32)}} ">
                </a>    
            {% endfor %}
        </div>
    </div>
{% endif %}


{% if type.question %}	
    <div class="normal-message">
        <div>            
            <strong>{{'QuestionPlan'|get_lang}}</strong>
        </div>
        {{type.question}}
    </div>
{% endif %}

{{form.return_form()}}default/course_description/upload.tpl000064400000000521152004101310014061 0ustar00{{javascript}}

{% for message in messages %}
    {{ message }}
{% endfor %}

<div class="btn-toolbar actions-bar" >
    <div class="btn-group">
        <a href="{{root}}&amp;action=listing" class="btn" title="{{'ImportCSV'|get_lang}}">
            <i class="size-32 icon-back"></i>
        </a>
    </div>
</div>

{{form.return_form()}}default/create_course/add_course.tpl000064400000003342152004101310013631 0ustar00{{ just_created_link }}
<h3>{{ 'JustCreated'|get_lang }} {{ course_title }}</h3>
<hr />
<h3>{{ 'ThingsToDo'|get_lang }}</h3>
<br />

<div id="course_thing_to_do" class="row">
    <div class="span3">
        <div class="thumbnail">
            <img src="{{ _p.web_img }}icons/64/home.png"/>
            <div class="caption">
                <a href="{{ course_url }}" class="btn">
                    {{'CourseHomepage'|get_lang}}
                </a>    
            </div>
        </div>
    </div>
        
    {% if ("allow_user_course_subscription_by_course_admin" | get_setting) == 'true' or _u.is_admin == 1 %}
    <div class="span3">
        <div class="thumbnail">
        <img src="{{ _p.web_img }}icons/64/user.png"/>
            <div class="caption">
            <a href="{{ _p.web_main }}user/subscribe_user.php?cidReq={{ course_id }}" class="btn">
                {{ 'SubscribeUserToCourse'|get_lang }}
            </a>    
            </div>
        </div>
    </div>
    {% endif %}
        
    <div class="span3">
        <div class="thumbnail">
        <img src="{{ _p.web_img }}icons/64/info.png"/>
            <div class="caption">
            <a href="{{ _p.web_main }}course_description/?cidReq={{ course_id }}" class="btn">
                {{'AddCourseDescription'|get_lang}}
            </a>
            </div>
        </div>
    </div>
    <div class="span3">
        <div class="thumbnail">        
        <img src="{{ _p.web_img }}icons/64/reference.png"/>
            <div class="caption">
            <a href="{{ _p.web_main }}course_info/infocours.php?cidReq={{ course_id }}" class="btn">
                {{ 'ModifInfo'|get_lang }}
            </a>
            </div>
        </div>
    </div>
</div>
    
<div class="clear"></div>default/export/table_pdf.tpl000064400000002773152004101310012146 0ustar00{{ organization }}

<h2 align="center"> {{ pdf_title }} </h2>

{% if pdf_description != null %}
    {{ pdf_description }}
    <br /><br />
{% endif %}

<table align="center" width="100%">
    <tr>
        <td>
         <strong>{{ "Teacher" | get_lang }}:</strong> {{ pdf_teachers }}
        </td>
    </tr>    
    {% if pdf_session != null %}
    <tr>
        <td>
          <strong>{{ "Session" | get_lang }}:</strong> {{ pdf_session }}
        </td>
    </tr>
    {% endif %}    
    <tr>
        <td>
         <strong>{{ "Course" | get_lang }}:</strong> {{ pdf_course }}
         
         {% if pdf_course_category %}         
            <strong>{{ "Category" | get_lang }}:</strong> {{ pdf_course_category }}
         {% endif %}
         
        </td>
    </tr>    
    <tr>
        <td>
         <strong>{{ "Date" | get_lang }}:</strong> {{ pdf_date }}
        </td>
    </tr>    
</table>

<br />

{{ pdf_content }}

{% if add_signatures == true %}
    <br />
    <br />

    <table style="text-align:center" width="100%">
        <tr>
            <td>
                _____________________________
                <br />
                {{ "Drh" | get_lang }}
            </td>
            <td>
                _____________________________
                <br />
                {{ "Teacher" | get_lang }}
                </td>
            <td>
                _____________________________
                <br />
                {{ "Date" | get_lang }}        
            </td>
        </tr>
    </table>
{% endif %}default/glossary/edit.tpl000064400000000335152004101310011465 0ustar00
{% include 'default/glossary/header.tpl' %}

<div class="actions-bar btn-toolbar" >
    <a href = "{{root}}&amp;action=index" class="btn">
        <i class="size-32 icon-back"></i>
    </a>
</div>

{{form.return_form()}}default/glossary/csv.tpl000064400000000000152004101310011320 0ustar00default/glossary/header.tpl000064400000000163152004101310011767 0ustar00{{javascript}}

<div id="messages">
    {% for message in messages %}
        {{ message }}
    {% endfor %}
</div>default/glossary/index.tpl000064400000003114152004101310011645 0ustar00{% include 'default/glossary/header.tpl' %}
{% include 'default/glossary/javascript.tpl' %}

<div class="btn-toolbar actions-bar" >
    {% if is_allowed_to_edit %}
        <div class="btn-group edit">
            <a href="{{root}}&amp;action=add" class=" glossary btn" title="{{'Add'|get_lang}}">
                <i class="size-32 icon-new-glossary-term"></i>
            </a>
            <a href="{{root}}&amp;action=import_csv" class="btn import_csv" title="{{'ImportCSV'|get_lang}}">
                <i class="size-32 icon-import-csv"></i>
            </a>
            <a href="{{root}}&amp;action=export_csv" class="btn export_csv" title="{{'ExportAsCSV'|get_lang}}">
                <i class="size-32 icon-export-csv"></i>
            </a>
            <a href="javascript:void(0)" onclick="ui.remove_by_course('entries', this);return false;" class="btn delete_all" title="{{'DeleteAll'|get_lang}}">
                <i class="size-32 icon-delete-all"></i>
            </a>
        </div>
    {% endif %}    
    <div class="btn-group edit">
        {% if view == 'table' %}
            <a href="{{root}}&amp;view=list" class="btn" title="{{'ViewList'|get_lang}}">
                <i class="size-32 icon-view-text"></i>
            </a>
        {% else %}
            <a href="{{root}}&amp;view=table" class="btn" title="{{'ViewTable'|get_lang}}">
                <i class="size-32 icon-view-detailed"></i>
            </a>
        {% endif %}
    </div>
    
</div>

{% if view == 'table' %}
    {% include 'default/glossary/table.tpl' %}
{% else %}
    {% include 'default/glossary/list.tpl' %}
{% endif %}
default/glossary/javascript.tpl000064400000001400152004101310012700 0ustar00<script type="text/javascript" src="{{www}}/main/glossary/resources/js/proxy.js"></script>
<script type="text/javascript" src="{{www}}/main/glossary/resources/js/ui.js"></script>
<script type="text/javascript" src="{{www}}/main/glossary/resources/js/jquery.dataTables.js"></script>

<script type="text/javascript">
    
$(function() {

    ui.proxy = glossary;

    window.context = {};
    
    context.sec_token = '{{sec_token}}';
    context.c_id = '{{c_id}}';
    context.session_id = '{{session_id}}';
    context.www = '{{www}}';
    context.ajax = '{{www}}/main/inc/ajax/glossary.ajax.php';
    
    if(typeof(lang) == "undefined")
    {
        window.lang = {};
    }
    
    lang.ConfirmYourChoice = "{{'ConfirmYourChoice'|get_lang}}";  
    
});

</script>default/glossary/list.tpl000064400000002771152004101310011521 0ustar00
<ul id="entries" class="unstyled glossary entries" data-c_id="{{c_id}}" data-session_id="{{session_id}}" >
{% for item in items %}
    <li id="glossary_{{item.id}}" class="glossary term" data-id="{{item.id}}" data-c_id="{{item.c_id}}" data-type="glossary">
        <div class="title sectiontitle">
            {% if is_allowed_to_edit %}
                <div class="pull-right">
                {% if session_id == item.session_id %}
                    <a href="{{root}}&amp;action=edit&amp;id={{item.id}}" 
                       title="{{'Edit'|get_lang}}">
                        <i class="size-22 icon-edit"></i>
                    </a>                    
                    <a href="{{root}}&amp;action=delete&amp;id={{item.id}}" 
                       onclick="ui.remove('glossary_{{item.id}}', this); return false;"
                       title="{{'Delete'|get_lang}}">
                        <i class="size-22 icon-delete"></i>
                    </a>
                
                {% else %}
                    <img title="{{'EditionNotAvailableFromSession'|get_lang}}" 
                         alt="{{'EditionNotAvailableFromSession'|get_lang}}" 
                         src="{{'edit_na.png'|icon(22)}}" 
                         style="vertical-align:middle;">
                {% endif %}
                </div>
            {% endif %}
            
            {{item.name}}
        </div>
        <div class="sectioncomment">
            {{item.description}}
        </div>
    </li>
{% endfor %}
</ul>default/glossary/table.tpl000064400000005410152004101310011626 0ustar00<script type="text/javascript">
    
$(document).ready(function() {
    $('#entries').dataTable( {
        "oLanguage": {
            "sLengthMenu": "_MENU_ " + "{{'DataTableLengthMenu'|get_lang}}",
            "sZeroRecords": "{{'DataTableZeroRecords'|get_lang}}",
            "sInfo": "{{'DataTableInfo'|get_lang}}",
            "sInfoEmpty": "{{'DataTableInfoEmpty'|get_lang}}",
            "sInfoFiltered": "{{'DataTableInfoFiltered'|get_lang}}",
            "sSearch": "{{'DataTableSearch'|get_lang}}",
            "oPaginate": {
                "sPrevious": "",
                "sNext": ""
            }
        }
     });
} );

</script>

<table id="entries" class="data_table glossary entries" data-c_id="{{c_id}}" data-session_id="{{session_id}}" >
    <thead>
        <tr>
            <th class="sorting">
                {{'TermName'|get_lang}}
            </th>
            <th class="sorting">                
                {{'TermDefinition'|get_lang}}
            </th>
            {% if is_allowed_to_edit %}
                <th>
                    {{'Actions'|get_lang}}
                </th>
            {% endif %}
        </tr>
    </thead>
    <tbody>
        {% for item in items %}
            <tr id="glossary_{{item.id}}" class="glossary term" data-id="{{item.id}}" data-c_id="{{item.c_id}}" data-type="glossary">
                <td class="title">
                    {{item.name}}
                </td>
                <td class="">
                    {{item.description}}
                </td>
                {% if is_allowed_to_edit %}
                    <td class="td_actions">
                        {% if session_id == item.session_id %}
                            <a  href="{{root}}&amp;action=edit&amp;id={{item.id}}" 
                                title="{{'Edit'|get_lang}}">
                                <i class="size-22 icon-edit"></i>
                            </a>                    
                            <a  href="{{root}}&amp;action=delete&amp;id={{item.id}}" 
                                onclick="ui.remove('glossary_{{item.id}}', this); return false;"
                                title="{{'Delete'|get_lang}}">
                                <i class="size-22 icon-delete"></i>
                            </a>
                        {% else %}
                            <img    title="{{'EditionNotAvailableFromSession'|get_lang}}" 
                                    alt="{{'EditionNotAvailableFromSession'|get_lang}}" 
                                    src="{{'edit_na.png'|icon(22)}}" 
                                    style="vertical-align:middle;">
                        {% endif %}
                    </td>
                {% endif %}
            </tr>
        {% endfor %}
    </tbody>
</table>
<div style="clear:both"></div>

default/glossary/upload.tpl000064400000000334152004101310012023 0ustar00{% include 'default/glossary/header.tpl' %}

<div class="actions-bar btn-toolbar" >
    <a href = "{{root}}&amp;action=index" class="btn">
        <i class="size-32 icon-back"></i>
    </a>
</div>

{{form.return_form()}}default/layout/course_navigation.tpl000064400000005127152004101310013735 0ustar00{# Course navigation icons #}
{% if show_header == true %}

    {% if show_course_shortcut is not null %}
        <div class="span12">
            {{ show_course_shortcut }}
        </div>
    {% endif %}

    {% if show_course_navigation_menu is not null %}    
        <script>                    
            $(document).ready( function() {
                if (readCookie('menu_state') == 0) {
                    swap_menu();
                }
            });                    
            function createCookie(name, value, days) {
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime()+(days*24*60*60*1000));
                    var expires = "; expires="+date.toGMTString();
                }
                else var expires = "";
                document.cookie = name+"="+value+expires+"; path=/";
            }
            function readCookie(name) {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for (var i = 0; i < ca.length; i++)
                {
                    var c = ca[i];
                    while (c.charAt(0)==' ') c = c.substring(1,c.length);
                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                }
                return null;
            }
            function swap_menu() {
                toolnavlist_el = document.getElementById('toolnav');
                center_el = document.getElementById('center');
                swap_menu_link_el = document.getElementById('swap_menu_link');

                if (toolnavlist_el.style.display == 'none') {
                    toolnavlist_el.style.display = '';
                    if (center_el) {
                        center_el.style.margin = '0 190px 0 0';
                    }
                    swap_menu_link_el.innerHTML = '{{'Hide'|get_lang}}';
                    createCookie('menu_state',1,10);
                } else {
                    toolnavlist_el.style.display = 'none';
                    if (center_el) {
                        center_el.style.margin = '0 0 0 0';
                    }
                    swap_menu_link_el.innerHTML = '{{'Show'|get_lang}}';
                    createCookie('menu_state',0,10);
                }
            }
            document.write('<div class="span12 pull-right"> <a class="btn" href="javascript: void(0);" id="swap_menu_link" onclick="javascript: swap_menu();">{{'Hide'|get_lang}}<\/a></div>');                    
            </script>                    
    {{ show_course_navigation_menu }}
    {% endif %}
{% endif %}default/layout/blank.tpl000064400000000015152004101310011274 0ustar00{{ content }}default/layout/footer.tpl000064400000006421152004101310011512 0ustar00<footer> <!-- start of #footer section -->	    
    <div class="container">
        <div class="row">            
            <div id="footer_left" class="span4">                
                {% if session_teachers is not null %}
                    <div id="session_teachers">
                        {{ session_teachers }}           
                    </div>
                {% endif %}

                {% if teachers is not null %}
                    <div id="teachers">
                        {{ teachers }}            
                    </div>
                {% endif %}
                
                {#  Plugins for footer section #}                                             
                {% if plugin_footer_left is not null %}
                    <div id="plugin_footer_left">
                        {{ plugin_footer_left }}               
                    </div>                
                {% endif %}
                 &nbsp;
            </div>
            
            <div id="footer_center" class="span4">
                {#   Plugins for footer section  #}		
                {% if plugin_footer_center is not null %}
                    <div id="plugin_footer_center">
                        {{ plugin_footer_center }}                
                    </div>
                {% endif %}
                 &nbsp;
            </div>
            
            <div id="footer_right" class="span4">                
                {% if administrator_name is not null %}
                    <div id="admin_name">
                        {{ administrator_name }}          
                    </div>
                {% endif %}
                
                <div id="software_name">	    	
                    {{ "Platform"|get_lang }} <a href="{{_p.web}}" target="_blank">{{_s.software_name}} {{_s.system_version}}</a>
                    &copy; {{ "now"|date("Y") }}   	
                </div>
                {#   Plugins for footer section  #}		
                {% if plugin_footer_right is not null %}                                
                    <div id="plugin_footer_right">
                        {{ plugin_footer_right }}                
                    </div>                
                {% endif %}
                &nbsp;
            </div><!-- end of #footer_right -->
        </div><!-- end of #row -->        
    </div><!-- end of #container -->
</footer>

{{ footer_extra_content }}

{% raw %}
<script>
/* Makes row highlighting possible */
$(document).ready( function() {
    //Chosen select
    $(".chzn-select").chosen();     
    
    //Table highlight
    $("form .data_table input:checkbox").click(function() {
        if ($(this).is(":checked")) {
            $(this).parentsUntil("tr").parent().addClass("row_selected");
                        
        } else {
            $(this).parentsUntil("tr").parent().removeClass("row_selected");
        }    
    });
    
    /* For non HTML5 browsers */
    if ($("#formLogin".length > 1)) {
        $("input[name=login]").focus();
    }
    
    /* For IOS users */
    $('.autocapitalize_off').attr('autocapitalize', 'off');
    
    //Tool tip (in exercises)
    var tip_options = {
        placement : 'right'
    }
    $('.boot-tooltip').tooltip(tip_options);
   
});
</script>
{% endraw %}
{{ execution_stats }}default/layout/head.tpl000064400000023420152004101310011113 0ustar00
<meta charset="{{ system_charset }}" />
<link href="http://www.chamilo.org/documentation.php" rel="help" />
<link href="http://www.chamilo.org/team.php" rel="author" />
<link href="http://www.chamilo.org" rel="copyright" />
{{ prefetch }}
<meta name="Generator" content="{{ _s.software_name }} {{ _s.system_version|slice(0,1) }}" />
{#  Use the latest engine in ie8/ie9 or use google chrome engine if available  #}
{#  Improve usability in portal devices #}
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ title_string }}</title>
{% spaceless %}

{% if part is defined and part is not sameas('administration') %}{{miss_css}}{% else %}{{css}}{% endif %}

{% endspaceless %}
{{ css_style_print }}
{{ js_file_to_string }}
{{ extra_headers }}
<script>
//<![CDATA[
// This is a patch for the "__flash__removeCallback" bug, see FS#4378.
{% raw %}
if ((navigator.userAgent.toLowerCase().indexOf('msie') != -1 ) && ( navigator.userAgent.toLowerCase().indexOf('opera') == -1 )) {
    window.attachEvent( 'onunload', function() {
            window['__flash__removeCallback'] = function ( instance, name ) {
                try {
                    if ( instance ) {
                        instance[name] = null ;
                    }
                } catch ( flashEx ) {
                }
            } ;
    });
}
{% endraw %}
//]]>


                       
function setCheckbox(value, table_id) {    
    checkboxes = $("#"+table_id+" input:checkbox");   
    $.each(checkboxes, function(index, checkbox) { 
         checkbox.checked = value;
        if (value) {
            $(checkbox).parentsUntil("tr").parent().addClass("row_selected");
        } else {
            $(checkbox).parentsUntil("tr").parent().removeClass("row_selected");            
        }      
    });   
    return false;
}

function action_click(element, table_id) {
    d = $("#"+table_id);
    if (!confirm('{{ "ConfirmYourChoice"|get_lang }}')) {
        return false;
    } else {            
        var action =$(element).attr("data-action");                                    
        $('#'+table_id+' input[name="action"] ').attr("value", action);        
        d.submit();
        return false;
    }
}                        

/* Global chat variables */
var ajax_url        = '{{ _p.web_ajax }}chat.ajax.php';
var online_button   = '{{ online_button }}';
var offline_button  = '{{ offline_button }}';
var connect_lang    = '{{ "ChatConnected"|get_lang }}';
var disconnect_lang = '{{ "ChatDisconnected"|get_lang }}';

function get_url_params(q, attribute) {
    var vars;
    var hash;
    if (q != undefined) {
        q = q.split('&');
        for(var i = 0; i < q.length; i++){
            hash = q[i].split('=');
            if (hash[0] == attribute) {
                return hash[1];
            }
        }
    }
}

function check_brand() {
    if ($('.subnav').length) {        
        if ($(window).width() >= 969) {
            $('.subnav .brand').hide();
        } else {
            $('.subnav .brand').show();
        }
    }
}

$(window).resize(function() {
    check_brand();
});

$(document).scroll(function() {

    // Top bar scroll effect
    if ($('body').width() > 959) {   
        if ($('.subnav').length) {
            if (!$('.subnav').attr('data-top')) {
                // If already fixed, then do nothing
                if ($('.subnav').hasClass('subnav-fixed')) return;
                // Remember top position
                var offset = $('.subnav').offset();
                $('.subnav').attr('data-top', offset.top);
            }

            if ($('.subnav').attr('data-top') - $('.subnav').outerHeight() <= $(this).scrollTop()) {
                $('.subnav').addClass('subnav-fixed');
            } else {
                $('.subnav').removeClass('subnav-fixed');
            }
            //$('.subnav .brand').show();
        }
    } else {
        //$('.subnav .brand').hide();
    }
    
    //Exercise warning fixed at the top
    var fixed =  $("#exercise_clock_warning");
    if (fixed.length) {        
        if (!fixed.attr('data-top')) {
            // If already fixed, then do nothing
            if (fixed.hasClass('subnav-fixed')) return;
            // Remember top position
            var offset = fixed.offset();
            fixed.attr('data-top', offset.top);
            fixed.css('width', '100%');
        }

        if (fixed.attr('data-top') - fixed.outerHeight() <= $(this).scrollTop()) {
            fixed.addClass('subnav-fixed');
            fixed.css('width', '100%');
        } else {
            fixed.removeClass('subnav-fixed');
            fixed.css('width', '200px');
        }
    }

    //Admin -> Settings toolbar
    if ($('body').width() > 959) {
        if ($('.new_actions').length) {
            if (!$('.new_actions').attr('data-top')) {
                // If already fixed, then do nothing
                if ($('.new_actions').hasClass('new_actions-fixed')) return;
                // Remember top position
                var offset = $('.new_actions').offset();

                var more_top = 0;
                if ($('.subnav').hasClass('new_actions-fixed')) {
                    more_top = 50;
                }
                $('.new_actions').attr('data-top', offset.top + more_top);
            }

            if ($('.new_actions').attr('data-top') - $('.new_actions').outerHeight() <= $(this).scrollTop()) {
                $('.new_actions').addClass('new_actions-fixed');
            } else {
                $('.new_actions').removeClass('new_actions-fixed');
            }
        }
    }

    //Bottom actions
    if ($('.bottom_actions').length) {
        if (!$('.bottom_actions').attr('data-top')) {
            // If already fixed, then do nothing
            if ($('.bottom_actions').hasClass('bottom_actions_fixed')) return;

            // Remember top position
            var offset = $('.bottom_actions').offset();
            $('.bottom_actions').attr('data-top', offset.top);
        }

        if ($('.bottom_actions').attr('data-top') > $('body').outerHeight()) {
            if ( ($('.bottom_actions').attr('data-top') - $('body').outerHeight() - $('.bottom_actions').outerHeight()) >= $(this).scrollTop()) {
                $('.bottom_actions').addClass('bottom_actions_fixed');
                $('.bottom_actions').css("width", "100%");
            } else {
                $('.bottom_actions').css("width", "");
                $('.bottom_actions').removeClass('bottom_actions_fixed');
            }
        } else {
            if ( ($('.bottom_actions').attr('data-top') -  $('.bottom_actions').outerHeight()) <= $(this).scrollTop()) {
                $('.bottom_actions').addClass('bottom_actions_fixed');
                $('.bottom_actions').css("width", "100%");
            } else {
                $('.bottom_actions').removeClass('bottom_actions_fixed');
                $('.bottom_actions').css("width", "");
            }
        }
    }
});    

$(function() {
    
    check_brand();

    //Removes the yellow input in Chrome
    if (navigator.userAgent.toLowerCase().indexOf("chrome") >= 0) {
        $(window).load(function(){
            $('input:-webkit-autofill').each(function(){
                var text = $(this).val();
                var name = $(this).attr('name');                
                $(this).after(this.outerHTML).remove();
                $('input[name=' + name + ']').val(text);
            });
        });
    }

    //Fixes buttons to the new btn class
    if (!$('#button').hasClass('btn')) {
        $("button").addClass('btn');
    }
    
    //Dropdown effect
    $('.dropdown-toggle').dropdown();

    //Responsive effect
    $(".collapse").collapse();
        
    $(".accordion_jquery").accordion({        
        autoHeight: false,
        active: false, // all items closed by default
        collapsible: true,
        header: ".accordion-heading"
    })

    //Global popup
    $('.ajax').on('click', function() {
        var url     = this.href;
        var dialog  = $("#dialog");
        if ($("#dialog").length == 0) {
            dialog  = $('<div id="dialog" style="display:none"></div>').appendTo('body');
        }

        width_value = 580;
        height_value = 450;
        resizable_value = true;

        new_param = get_url_params(url, 'width');
        if (new_param) {
            width_value = new_param;
        }

        new_param = get_url_params(url, 'height')
        if (new_param) {
            height_value = new_param;
        }

        new_param = get_url_params(url, 'resizable');
        if (new_param) {
            resizable_value = new_param;
        }

        // load remote content
        dialog.load(
                        url,
                        {},
                        function(responseText, textStatus, XMLHttpRequest) {
                                dialog.dialog({
                                        modal       : true,
                                        width       : width_value,
                                        height      : height_value,
                                        resizable   : resizable_value
                                });
        });
        //prevent the browser to follow the link
        return false;
    });

    //old jquery.menu.js
    $('#navigation a').stop().animate({
        'marginLeft':'50px'
    },1000);
    
    $('#navigation > li').hover(
        function () {
            $('a',$(this)).stop().animate({
                'marginLeft':'1px'
            },200);
        },
        function () {
            $('a',$(this)).stop().animate({
                'marginLeft':'50px'
            },200);
        }
    );
    /*
    $(".td_actions").hide();

    $(".td_actions").parent('tr').mouseover(function() {
       $(".td_actions").show();
    });

    $(".td_actions").parent('tr').mouseout(function() {
        $(".td_actions").hide();
    });*/
});
</script>
{{ header_extra_content }}
default/layout/hot_courses.tpl000064400000002721152004101310012550 0ustar00{% if hot_courses is not null and hot_courses is not empty %}

<script>
$(document).ready( function() {
    $('.star-rating li a').live('click', function(event) {
        var id = $(this).parents('ul').attr('id');
        $('#vote_label2_' + id).html("{{'Loading'|get_lang}}");
        $.ajax({
            url: $(this).attr('data-link'),
            success: function(data) {
                $("#rating_wrapper_"+id).html(data);
                if (data == 'added') {
                    //$('#vote_label2_' + id).html("{{'Saved'|get_lang}}");
                }
                if (data == 'updated') {
                    //$('#vote_label2_' + id).html("{{'Saved'|get_lang}}");
                }
            }
        });
    });

});
</script>

    <section id="hot_courses">
        <div class="row">
            <div class="span9">
                {% if _u.is_admin %}
                <span class="pull-right">
                    <a title="{{ "Hide"|get_lang }}" alt="{{ "Hide"|get_lang }}" href="{{ _p.web_main }}admin/settings.php?search_field=show_hot_courses&submit_button=&_qf__search_settings=&category=search_setting">
                        <img src="{{ "visible.png"|icon(32) }}">
                    </a>
                </span>
                {% endif %}
                {{ "HottestCourses"|display_page_subheader }}
            </div>            
                
            {% include 'default/layout/hot_course_item.tpl' %}
        </div>
    </section>
{% endif %}
default/layout/hot_course_item.tpl000064400000002350152004101310013401 0ustar00{% for hot_course in hot_courses %}               
    {% if hot_course.extra_info.title %}        
        <div class="span9 hot-course-box">
            <div class="well_border">
                <div class="row">
                    <div class="span2">
                        <div class="thumbnail">
                            <img src="{{ hot_course.extra_info.course_image }}" alt="" /> 
                        </div>
                    </div>
                    <div class="span6">
                        <div class="categories-course-description">
                            <h3>{{ hot_course.extra_info.title}}</h3>
                            <h5>{{ hot_course.extra_info.teachers }}</h5>
                            {{ hot_course.extra_info.rating_html }}
                        </div>
                        <p>                                                            
                            {{ hot_course.extra_info.description_button }}
                            {{ hot_course.extra_info.go_to_course_button }}
                            {{ hot_course.extra_info.register_button }}
                        </p>
                    </div>
                </div>
            </div>
        </div>
    {% endif %}
{% endfor %}
default/layout/hot_course_item_popup.tpl000064400000002270152004101310014625 0ustar00{% for hot_course in hot_courses %}               
    {% if hot_course.extra_info.title %}        
        <div class="span5">
            <div class="well_border">
                <div class="row">
                    <div class="span2">
                        <div class="thumbnail">
                            <img src="{{ hot_course.extra_info.course_image }}" />                                    
                        </div>
                    </div>
                    <div class="span2">
                        <div class="categories-course-description">
                            <h3>{{ hot_course.extra_info.title}}</h3>
                            <h5>{{ hot_course.extra_info.teachers }}</h5>
                            {# hot_course.extra_info.rating_html #}
                        </div>
                        <p>
                            {{ hot_course.extra_info.description_button }}
                            {{ hot_course.extra_info.go_to_course_button }}
                            {{ hot_course.extra_info.register_button }}
                        </p>
                    </div>
                </div>
            </div>
        </div>
    {% endif %}
{% endfor %}default/layout/layout_1_col.tpl000064400000001411152004101310012600 0ustar00{% extends "default/layout/main.tpl" %}

{#  1 column  #}
{% block body %}

    {#  Plugin top  #}
    {% if plugin_content_top %}
        <div id="plugin_content_top" class="span12">
            {{ plugin_content_top}}
        </div>
    {% endif %}

    <div class="span12">
        {% include "default/layout/page_body.tpl" %}

        {% block content %}
            {% if content is not null %}
                <section id="main_content">
                {{ content }}
                </section>
            {% endif %}
        {% endblock %}
        &nbsp;
    </div>

    {#  Plugin bottom  #}
    {% if plugin_content_bottom %}
        <div id="plugin_content_bottom" class="span12">
            {{ plugin_content_bottom }}
        </div>
    {% endif %}
{% endblock %}default/layout/layout_2_col.tpl000064400000006415152004101310012612 0ustar00{% extends "default/layout/main.tpl" %}

{% block body %}	
	{# Main content #}
   
	{#  Right column  #}
	<div class="span3 menu-column">		        
        {% if plugin_menu_top %}
            <div id="plugin_menu_top">
                {{plugin_menu_top}}
            </div>
        {% endif %}  	
        
	    {# if user is not login show the login form #}
		{% if _u.logged  == 0 %}
			{% include "default/layout/login_form.tpl" %}
		{% endif %}

		{#  User picture  #}
        {{ user_image_block }}
        
        {#  User Profile links #}
		{{ profile_block }}
        
        {#  Course block - admin #}
		{{ course_block }}
        
        {#  Course block - teacher #}
		{{ teacher_block }}
		
		{#  Notice  #}
		{{ notice_block }}
                    
        {#  Help #}
		{{ help_block }}
		
		{#  Links that are not added in the tabs #}
		{{ navigation_course_links }}
		
		{#  Reservation block  #}
		{{ reservation_block }}
		
		{#  Search (xapian) #}
		{{ search_block }}
		
		{#  Classes  #}
		{{ classes_block }}
		
		{#  Skills #}
		{{ skills_block }}
        	
		{#  Plugin courses sidebar  #}		
        {#  Plugins for footer section  #}		
        
        {% if plugin_menu_bottom %}
            <div id="plugin_menu_bottom">
                {{ plugin_menu_bottom }}
            </div>
        {% endif %}        
	</div>
	<div class="span9 content-column">
        
        {#  Plugin bottom  #}
        {% if plugin_content_top %}
            <div id="plugin_content_top">
                {{ plugin_content_top }}
            </div>
        {% endif %}
        
		{#  Portal homepage  #}
        {% if home_page_block %}
            <section id="homepage">
                <div class="row">
                    <div class="span9">
                    {{ home_page_block }}
                    </div>
                </div>
            </section>
        {% endif %}
        
		{#  ??  #}
		{{ sniff_notification }}
		
        {% include "default/layout/page_body.tpl" %}
                
        {#  Welcome to course block  #}
        {% if welcome_to_course_block %}      
            <section id="welcome_to_course">
            {{ welcome_to_course_block }}
            </section>
        {% endif %}
                
        {% if content is not null %}
            <section id="main_content">
                {{ content }}
            </section>
        {% endif %}
        		
		{#  Announcements  #}
        {% if announcements_block %}      
            <section id="announcements">
            {{ announcements_block }}
            </section>
        {% endif %}
        
        {# Course categories (must be turned on in the admin settings) #}
        {% if course_category_block %}
            <section id="course_category">
                <div class="row">
                    <div class="span9">
                    {{ course_category_block }}
                    </div>
                </div>
            </section>
        {% endif %}
                	
		{#  Hot courses template  #}		
		{% include "default/layout/hot_courses.tpl" %}        
        
        {#  Content bottom  #}
        {% if plugin_content_bottom %}       
            <div id="plugin_content_bottom">
                {{plugin_content_bottom}}
            </div>
        {% endif %}
        &nbsp;
	</div>
		
{% endblock %}
default/layout/layout_3_col.tpl000064400000001054152004101310012605 0ustar00{#  This template is NOT used in chamilo 1.9 #}
{{ extends "default/layout/main.tpl" }}

{% block body %}	
	<div id="maincontent" class="maincontent">
		{{ plugin_courses_block}}
		{{ home_page_block}}
		{{ message}}
		{{ content}}
		{{ announcements_block}}
	</div>
	
	<div id="menu-wrapper">	
		{{ login_block}}		
		{{ profile_block}}			
		{{ account_block}}	
		{{ teacher_block}}
		{{ notice_block}}
		{{ navigation_course_links}}
		{{ plugin_courses_right_block}}
		{{ reservation_block}}
		{{ search_block}}
		{{ classes_block}}
	</div>
{% endblock %}default/layout/login.tpl000064400000000332152004101310011317 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}
	<div class="span3 menu-column">	
		{% if _u.logged  == 0 %}
			{% include "default/layout/login_form.tpl" %}
		{% endif %}
	</div>
		
{% endblock %}
default/layout/login_form.tpl000064400000000751152004101310012347 0ustar00<div id="login_block" class="well sidebar-nav">
        
	{{ login_language_form }}
        
    {% if plugin_login_top is not null %}
        <div id="plugin_login_top">
            {{ plugin_login_top }}
        </div>
    {% endif %}
    
	{{login_form}}
        
	{{login_failed}}
        
	{{login_options}} 
       
    {% if plugin_login_bottom is not null %}        
        <div id="plugin_login_bottom">
            {{ plugin_login_bottom }}
        </div>
    {% endif %}
</div>default/layout/main.tpl000064400000000773152004101310011144 0ustar00{% block header %}
{% include "default/layout/main_header.tpl" %}    
{% endblock %}

{% block body %}	
	{% if show_sniff == 1 %}
	 	{% include "default/layout/sniff.tpl" %}
	{% endif %}
{% endblock %}

{% block footer %}
    {#  Footer  #}
    {% if show_footer == true %}
        </div> <!-- end of #row" -->
        </div> <!-- end of #main" -->
        <div class="push"></div>
        </div> <!-- end of #wrapper section -->
    {% endif %}
{% include "default/layout/main_footer.tpl" %}
{% endblock %}default/layout/main_footer.tpl000064400000000146152004101310012514 0ustar00{% if show_footer == true %}
    {% include "default/layout/footer.tpl" %}
{% endif %}
</body>
</html>default/layout/main_header.tpl000064400000006556152004101310012461 0ustar00<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="{{ document_language }}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html lang="{{ document_language }}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html lang="{{ document_language }}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{{ document_language }}" class="no-js"> <!--<![endif]-->
<head>
{% include "default/layout/head.tpl" %}
</head>
<body dir="{{ text_direction }}" class="{{ section_name }}">
<noscript>{{ "NoJavascript"|get_lang }}</noscript>

{% if show_header == true %}
    <div class="skip">
        <ul>
            <li><a href="#menu">{{ "WCAGGoMenu"|get_lang }}</a></li>
            <li><a href="#content" accesskey="2">{{ "WCAGGoContent"|get_lang }}</a></li>
        </ul>
    </div>
    <div id="wrapper">
        {# Bug and help notifications #}
        <ul id="navigation" class="notification-panel">
            {{ help_content }}
            {{ bug_notification_link }}
        </ul>
            
        {# topbar #}
        {% include "default/layout/topbar.tpl" %}

        <div id="main" class="container">
            <header>
                <div class="row">
                    <div id="header_left" class="span4">
                        {# logo #}
                        {{ logo }}

                        {# plugin_header left #}
                        {% if plugin_header_left is not null %}
                            <div id="plugin_header_left">
                                {{ plugin_header_left }}
                            </div>
                        {% endif %}
                    </div>
                    <div id="header_center" class="span3">
                        {# plugin_header center #}
                        {% if plugin_header_center is not null %}
                            <div id="plugin_header_center">
                                {{ plugin_header_center }}
                            </div>
                        {% endif %}
                        &nbsp;
                    </div>
                    <div id="header_right" class="span5">
                        <ul id="notifications" class="nav nav-pills pull-right">
                            {{ notification_menu }}
                        </ul>

                        {# plugin_header right #}
                        {% if plugin_header_right is not null %}
                            <div id="plugin_header_right">
                                {{ plugin_header_right }}
                            </div>
                        {% endif %}
                        &nbsp;
                    </div>
                </div>

                {% if plugin_header_main %}
                    <div class="row">
                        <div class="span12">
                            <div id="plugin_header_main">
                                {{ plugin_header_main }}
                            </div>
                        </div>
                    </div>
                {% endif %}

                {# menu #}
                {% include "default/layout/menu.tpl" %}

                {# breadcrumb #}
                {{ breadcrumb }}
            </header>

            <div id="top_main_content" class="row">
            {# course navigation links/shortcuts need to be activated by the admin #}
            {% include "default/layout/course_navigation.tpl" %}
{% endif %}
default/layout/menu.tpl000064400000003672152004101310011165 0ustar00{% if menu is not null %}
    
<div class="navbar subnav">
    <div class="navbar-inner">
        <div class="container">
            <a data-toggle="collapse" data-target=".nav-collapse" class="btn btn-navbar">              
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </a>
            <a class="brand" href="{{ _p.web }}">{{ portal_name }}</a>
            <div class="nav-collapse">
                <ul class="nav">
                    {{ menu }}
                </ul>

                {% if _u.logged == 1 %}
                <ul class="nav pull-right">
                    
                    {# BAT : this section will not be executed: we have no social stuff #}
                    {% if user_notifications is not null %}
                    <li>
                        <a href="{{ profile_url }}">{{ user_notifications }}</a>
                    </li>
                    {% endif %}
                    {# /BAT #}
   
                    <li>
                        <a href="{{ profile_url }}">
                            {{ profile_icon }}
                            {{ profile_label }}
                        </a>
                    </li>
                    
                    {# used to display a different background in new messages #}
                    {% if new_message %}
                        <li class="new_message">
                    {% else %}
                        <li>
                    {% endif %}
                        {{ message_link }}
                    </li>

                    <li>
                        <a id="logout_button" class="logout" title="{{ "Logout"|get_lang }}" href="{{ logout_link }}" >
                            {{ logout_icon }}
                        </a>
                    </li>
                </ul>

                {% endif %}
            </div>
        </div>
    </div>
</div>
{% endif %}default/layout/mm_admin.tpl000064400000001715152004101310011776 0ustar00{% extends "default/layout/main.tpl" %}

{% block body %}

<div class=span12>
    <script>
    $(function() {
        $( "#tabs" ).tabs({
          beforeLoad: function( event, ui ) {
            ui.jqXHR.error(function() {
              ui.panel.html(
                "Couldn't load this tab. We'll try to fix this as soon as possible.");
            });
          }
        });
        $("button#refresh_admin_tab").button().click(function() {
            console.log("refresh");
            $("#tabs").tabs("load", $("#tabs").tabs("option","selected"));
        });
    });
    </script>
    <button id="refresh_admin_tab" style="float: right; z-index: 1234">Refresh</button>
    <div id="tabs">
        <ul>
            {% for tab in tabs %}
            <li><a href="{{web_path}}main/{{part|default('formation')}}/index.php{{tab.href}}&action=loadtab" class="{{tab.class}}">{{tab.label}}</a></li>
            {% endfor %}
        </ul>
    </div>
</div>

{% endblock %}default/layout/mm_admin_comptes.tpl000064400000007030152004101310013524 0ustar00
<div>
    <div style="width: 55%; height: 100%; overflow-y: auto; display: inline-block; vertical-align: top;">
        <table class="data_table">
            <tr>
                <th>ID</th>
                <th>Nom</th>
                <th>Login</th>
                <th>Role</th>
                <th>Plus</th>
            </tr>
            {% for user in users %}
            <tr>
                <td>{{user.user_id}}</td>
                <td>{{user.name}}</td>
                <td>{{user.login}}</td>
                <td>{{user.role}}</td>
                <td><a href="{{web_path}}main/admin/user_list.php">Plus</a></td>
            </tr>
            {% endfor %}
        </table>
    </div>
    <div style="width: 40%; height: 100%; overflow: auto; display: inline-block; vertical-align: top; padding-left: 10px;">
        <h3>Nouvel utilisateur</h3>
        <form action="" method="POST">
            <div id="tabs-1">
                <p>
                    <label>Société</label><input type="text" name="company"/>
                    <label>Username</label><input type="text" name="username"/>
                    <label>Password</label><input type="text" name="password"/>
                    <p class="mm_info">Ce password devra être changé par l'utilisateur.</p>
                </p>
                <br/>
                <p>
                    <label class="mm_stone_wrapper">Role : </label>
                    <input type="radio" name="role" value="hp" class="mm_stone_wrapper"/><label class="mm_stone_wrapper">HP</label>
                    <input type="radio" name="role" value="startup" class="mm_stone_wrapper"/><label class="mm_stone_wrapper">Startup</label>
                    <input type="radio" name="role" value="rh" class="mm_stone_wrapper"/><label class="mm_stone_wrapper">RH</label>
                    <input type="radio" name="role" value="tutor" class="mm_stone_wrapper"/><label class="mm_stone_wrapper">Tuteur</label>
                </p>
                <br/>
                <p>
                    <label>Nombre d'utilisateurs à créer</label>
                    <input type="text" name="number" value="1"/>
                    <div id="mm_slider" style="display: inline-block; width: 150px; margin-left: 7px; "></div>
                    <b id="amount" style="display: inline-block; margin-left: 7px;"></b>
                    <p class="mm_info" id="info_nb">Si plusieurs utilisateurs sont créés, le login sera complémenté de '_i', où i = 0..<b id="max"></b>.</p>
                </p>
                <br/>
                <p>
                    <button id="mm_submit_new_user">Créer utilisateur(s)</button>
                </p>
            </div>
            <script>
            $(function() {
                $("input[name=number]").hide();
                $("#mm_slider").slider({
                    min: 1,
                    max: 20,
                    step:1,
                    create: function() {
                        $(this).slider("option", "value", 1);
                        $("#info_nb").hide();
                    },
                    change: function() {
                        $("input[name=number]").attr("value", $("#mm_slider").slider("value"));
                        $("#amount" ).html( $( "#mm_slider" ).slider( "value" ) );
                        $("#max" ).html( $( "#mm_slider" ).slider( "value" ) );
                        $("#info_nb").show();
                    }
                });
                $("button#mm_submit_new_user").button();
            });
            </script>
        </form>
    </div>
</div>default/layout/mm_admin_couples.tpl000064400000014623152004101310013532 0ustar00
<div>
    <div style="width: 55%; height: 100%; overflow-y: auto; display: inline-block; vertical-align: top;">
        
        <h3>Liste des Couples</h3>
        <table class="data_table">
            <tr>
                <th>ID</th>
                <th>HP</th>
                <th>SU</th>
                <th>Type</th>
                <th>Supr.</th>
            </tr>
            {% for couple in couples %}
            {% if couple.type != 'TU' %}
            <tr data-id="{{couple.id}}" data-type="{{couple.type}}">
                <td>{{couple.id}}</td>
                <td>{{couple.hp_firstname | slice(0,10)}} {{couple.hp_lastname | slice(0,10)}} ({{couple.hp_id}})</td>
                <td>{{couple.su_firstname | slice(0,10)}} {{couple.su_lastname | slice(0,10)}} ({{couple.pa_id}})</td>
                <td>{{couple.type}}</td>
                <td><button id="couple_delete">X</button></td>
            </tr>
            {% endif %}
            {% endfor %}
        </table>
        
    </div>
    <div style="width: 40%; height: 100%; overflow: auto; display: inline-block; vertical-align: top; padding-left: 10px;">
        <script>
            $(function() {
                $("table#hp").selectable({
                    filter: "#selectable_hp"
                });
                $("table#su").selectable({
                    filter: "#selectable_su"
                });
                $("button#couple_delete").button().click(function() {
                    couple_id   = $(this).parent().parent().attr('data-id');
                    couple_type = $(this).parent().parent().attr('data-type');
                    console.log(couple_id + "  " + couple_type);
                    $("#confirm_delete_dialog").dialog("open");
                });
                // Dialog in case user doesn't select HP and SU
                $("#both_select_dialog" ).dialog({
                    autoOpen: false, 
                    buttons: {
                        Ok: function() {
                            $( this ).dialog( "close" );
                        }
                    }
                }); 
                // Dialog to confirm deletion
                $("#confirm_delete_dialog").dialog({
                    modal: true,
                    autoOpen: false,
                    buttons: {
                      Supprimer: function() {
                        console.log("Suppression de : " + couple_id + "  " + couple_type);
                        target_url = "../cooperation/index.php";
                        $.ajax({
                            type: "POST", 
                            url: target_url,
                            data: {couple_type: couple_type, couple_id: couple_id, action: "delete"},
                            success: function() {
                                console.log("Requete terminée");
                                $("#tabs").tabs("load", $("#tabs").tabs("option","selected"));
                            }
                        });
                      },
                      Annuler: function() {
                        console.log("Annulation de : " + couple_id + "  " + couple_type);
                        $( this ).dialog( "close" );
                      }
                    }
                });
                $("button#ce").button().click(function(event) {
                    hp_id = $("tr#selectable_hp.ui-selected>td").attr("data-id");
                    su_id = $("tr#selectable_su.ui-selected>td").attr("data-id");
                    
                    console.log("Création d'une CE entre le hp " + hp_id + " et la su " + su_id);
                    if ((hp_id !== undefined) && (su_id !== undefined)) {
                        console.log("Construction de la requete ajax...");
                        target_url = "../cooperation/index.php";
                        $.ajax({
                            type: "POST", 
                            url: target_url,
                            data: {type: "ce", hp_id: hp_id, pa_id: su_id},
                            success: function() {
                                console.log("Requete terminée");
                                $("#tabs").tabs("load", $("#tabs").tabs("option","selected"));
                            }
                        });
                    } else {
                        $( "#both_select_dialog" ).dialog( "open" );
                    }
                });
                $("button#ds").button();
            });
        </script>
        <div style="max-height: 300px; overflow-y: auto">
            <h3>Liste des HP</h3>
            <table id="hp" class="data_table">
                    <tr>
                        <th>ID</th>
                        <th>Login</th>
                        <th>Nom</th>
                    </tr>
                {% for user in unmatched_hps %}
                    <tr id="selectable_hp">
                        <td class="ui-widget-content" data-id="{{user.user_id}}">{{user.user_id}}</td>
                        <td class="ui-widget-content">{{user.username}}</td>
                        <td class="ui-widget-content">{{user.firstname}} {{user.lastname}}</td>
                    </tr>
                {% endfor %}
            </table>
        </div>
        <div style="max-height: 300px; overflow-y: auto">
            <h3>Liste des Startups</h3>
            <table id="su" class="data_table">
                    <tr>
                        <th>ID</th>
                        <th>Login</th>
                        <th>Nom</th>
                    </tr>
                {% for user in unmatched_sus %}
                    <tr id="selectable_su">
                        <td class="ui-widget-content" data-id="{{user.user_id}}">{{user.user_id}}</td>
                        <td class="ui-widget-content">{{user.username}}</td>
                        <td class="ui-widget-content">{{user.firstname}} {{user.lastname}}</td>
                    </tr>
                {% endfor %}
            </table>
        </div>
        <div>
            <button id="ce">Créer cette CE</button>
            <button id="ds" disabled>Créer ce DS</button>
        </div>
        <div id="both_select_dialog">
            <p>Veuillez selectionner un HP et une Startup svp.</p>
        </div>
        <div id="confirm_delete_dialog">
            <p class="mm_warning">Voulez-vous suprimer ce couple? Cela détruira tous les contenus associés (documents, tchat, agenda, tâches...).</p>
        </div>
    </div>
</div>default/layout/mm_admin_cours.tpl000064400000000503152004101310013203 0ustar00
<div>
    <p><a href="../newscorm/lp_controller.php?cidReq=MO1&id_session=0&gidReq=0">Nouveau Cours</a></p>
    <p><a href="../newscorm/lp_controller.php?cidReq=CAS&id_session=0&gidReq=0">Nouveau Cas</a></p>
    <p><a href="../newscorm/lp_controller.php?cidReq=TEM&id_session=0&gidReq=0">Nouveau Témoignage</a></p>
</div>default/layout/mm_admin_formulaires.tpl000064400000000224152004101310014400 0ustar00
<div>
    <div>
        {% include "default/layout/mm_form_list.tpl" %}
        {% include "default/layout/mm_form_create.tpl" %}
    </div>
</div>default/layout/mm_admin_modules.tpl000064400000001215152004101310013521 0ustar00
<div>
    <!-- Cet ecran liste les modules et affiche l'avancement, le score et le rating moyen associé, ainsi que le nombre d'utilisateurs concerné -->
    <table class="data_table">
        <tr>
            <th>Learning Path</th>
            <th>Avancement</th>
            <th>Score</th>
            <th>Rating</th>
        </tr>
        {% for lp in lps %}
        <tr>
            <td>{{lp.title}}</td>
            <td>{{lp.avancement.value}} ({{lp.avancement.nb}})</td>
            <td>{{lp.score.value}} ({{lp.score.nb}})</td>
            <td>{{lp.rating.value}} ({{lp.rating.nb}})</td>
        </tr>
        {% endfor %}
    </table>  
</div>default/layout/mm_biblio.tpl000064400000004101152004101310012136 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

    <script>
        $(function() {
            $( ".mm_accordion" ).accordion({
                collapsible: true,
                active: false,
                heightStyle: "content"
            });
        });
    </script>

    <div class="span12" id="mm_biblio">
      
        <div class="floatRight"><p><a href="{{web_path}}main/formation/index.php" style="color: black">X</a></p></div>
        
      {% if biblio is defined %}
            {% for titre_chapitre, chapitre in biblio %}
                <h3>{{titre_chapitre}}</h3>
                <div class="mm_accordion" id="{{loop.index}}">
                    {% for titre_paragraphe, paragraphe in chapitre %}
                        <h3 style="padding-left: 40px;">{{titre_paragraphe}}</h3>
                        <div>
                            <ol>
                            {% for reference in paragraphe %}
                            {% if reference.type is sameas('url') %}
                                <li style="list-style: initial">
                                    <a href="{{reference.text}}">{{reference.text}}</a>
                                </li>
                            {% else %}
                                {% if reference.url %}
                                    <li style="list-style: initial">
                                        {{reference.text}} - <a href="{{reference.url}}">disponible ici</a>
                                    </li>
                                {% else %}
                                    <li style="list-style: initial">
                                        {{reference.text}}
                                    </li>
                                {% endif %}
                            {% endif %}
                            {% endfor %}
                            </ol>
                        </div>
                    {% endfor %}
                </div>
            {% endfor %}
        {% else %}
            <p>Aucune donnée</p>
        {% endif %}
        
    </div>

{% endblock %}default/layout/mm_cg.tpl000064400000000407152004101310011274 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

<div class=span12>
    {% if cg.html is defined and cg.html | length > 10 %}
        {{cg.html | raw}}
    {% else %}
        <p>Données introuvables.</p>
    {% endif %}
</div>

{% endblock %}default/layout/mm_coop_admin_left.tpl000064400000001670152004101310014030 0ustar00{% if is_admin %}
<div style="margin : 8px;">
    <h3>Créer un nouveau couple</h3>
    <form action="#" method="post" name="create">
        <table>
            <tr>
                <td>ID du hp</td>
                <td><input type="text" name="hp_id" maxlength="3"/></td>
            </tr>
            <tr>
                <td>ID du partenaire</td>
                <td><input type="text" name="pa_id" maxlength="3" /></td>
            </tr>
            <tr>
                <td>Type de couple</td>
                <td>
                    <select name="type">
                        <option value="ce">CE</option>
                        <option value="ds">DS</option>
                        <option value="tu">TU</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td><input type="submit" value="Créer un couple"/></td>
            </tr>
        </table>
    </form>
</div>
{% endif %}default/layout/mm_coop_admin_right.tpl000064400000000727152004101310014215 0ustar00
{% if is_admin %}
<table class="data_table" width="100%">
    <tr>
        <th>type</th>
        <th>hp_id</th>
        <th>id du partenaire</th>
        <th>delete</th>
    </tr>
{% for couple in couples %}
    <tr>
        <td>{{couple.type}}</td>
        <td>{{couple.hp_id}}</td>
        <td>{{couple.pa_id}}</td>
        <td><a href="?delete=true&user_id={{couple.pa_id}}&type={{couple.type}}">delete</a></td>
    </tr>            
{% endfor %}
</table>
{% endif %}default/layout/mm_coop_empty.tpl000064400000000532152004101310013060 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

    <div class=span12>
        
        <br/>
        <p>La "Mission Startup" commencera lorsque votre tuteur vous aura affecté un partenaire.</p>
        
        <br/>
        <p>Vous pouvez le contacter via l'onglet "Miss Mandarine".</p>
        
    </div>

{% endblock %}default/layout/mm_coop_left.tpl000064400000001077152004101310012661 0ustar00
    
        
<div class="mm_building_trick_for_items"></div>
{% if docs or dates or actions %}
    {% if current_tab == 0 %}
        {% include "default/layout/mm_coop_left_docs_items.tpl" %}
    {% elseif current_tab == 1 %}
        {% include "default/layout/mm_coop_left_agenda_items.tpl" %}
    {% else %}
        {% include "default/layout/mm_coop_left_action_items.tpl" %}
    {% endif %}
{% else %}
<div class="mm_coop_left_item mm_flour small">
    <p class="mm_text_info">Vous pouvez créer des éléments à l'aide du formulaire ci-dessous.</p>
</div>
{% endif %}default/layout/mm_coop_left_action.tpl000064400000012755152004101310014223 0ustar00{% if actions %}
<div class="mm_coop_left_items">
    {% for action in actions %}
    {% if action.is_deleted == 0 %}
    <div class="mm_coop_left_item">
    {% else %}
    <div class="mm_coop_left_item" id="deleted">
    {% endif %}
        <div id="title">
            <div id="text" style="display:inline-block; vertical-align: top; width: 50%;">
                <p>{{action.title}}</p>
            </div>
            
            <div id="buttons" style="display:inline-block; vertical-align: top; max-width: 50%; float:right;" class="mm_img">
                <!-- Deletion   -->
                {% if action.is_deleted == 0 %}
                <!-- Noone asked for this image to be deleted -->
                <a href="?tab=2&tool=action&action=delete&id={{action.tool_id}}" class="mm_img">
                    <img src="{{img_bin}}" alt="delete" title="delete"/>
                </a>
                {% else %}
                <!-- This image has been suggested for deletion -->
                <a href="?tab=2&tool=action&action=delete&id={{action.tool_id}}" class="mm_img">
                    {% if action.is_deleted == my_user_id %}
                    <!-- I deleted this item. I can restore it -->
                    <img src="{{img_restore}}" alt="restore" title="restore"/>
                    {% else %}
                    <!-- My partner suggested to delete this item. Let's do it -->
                    <img src="{{img_bin}}" alt="confirm delete" title="confirm delete"/>
                    {% endif %}
                </a>
                {% endif %}

                <!-- Is ok      -->
                {% if action.author_user_id == my_user_id %}
                    {% if action.is_ok %}
                        <!-- Je suis l'auteur et mon partenaire a validé -->
                        <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                    {% else %}
                        <!-- Je suis l'auteur et mon partenaire n'a pas validé -->
                        <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                    {% endif %}
                {% else %}
                    <a href="?tab=2&tool=action&action=validate&id={{action.tool_id}}" class="mm_img">
                        {% if action.is_ok %}
                            <!-- J'ai déjà validé ce document -->
                            <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                        {% else %}
                            <!-- Je n'ai pas validé ce document -->
                            <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                        {% endif %}
                    </a>
                {% endif %}

                <!-- Edition    -->
                <a href="?tab=2&tool=action&action=edit&id={{action.tool_id}}" class="mm_img">
                    <img src="{{img_edit}}" alt="edition" title="edition"/>
                </a>
            </div>
        </div>
        {% if edit_id == action.tool_id %}
        <div id="edit_details">
            <form method="post" action="?tab=2&tool=action&action=update">
                <p>
                    <label for="title">Titre : </label>
                    <input type="text" name="title" value="{{action.title}}"/>
                </p>
                <p>
                    <label for="assigned_to">Acteur(s) : </label>
                    
                    <input type="checkbox" name="assigned_to_me" value="me" {% if action.me_checked %} checked {% endif %}/>
                    <label for="me">{{my_name|default('Me')}}</label>
                    
                    <input type="checkbox" name="assigned_to_pa" value="pa" {% if action.pa_checked %} checked {% endif %}/>
                    <label for="pa">{{pa_name|default('Pa')}}</label>
                </p>
                <p>
                    <label for="description">Description : </label>
                    <textarea name="description" rows="2">{{action.description}}</textarea>
                    <input type="hidden" name="id" value="{{action.tool_id}}"/> <!-- This is dirty coding AND insecure. TODO : change -->
                    <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="update" title="update"/>
                </p>
            </form>
        </div>
        {% else %}
        <div id="details">{% if action.acteurs != null %}
            <p><b>Acteur(s) : </b>{{action.acteurs}}</p>
            {% endif %}
            <p><b>Description : </b>{{action.description}}</p>
        </div>
        {% endif %}
    </div>     
    {% endfor %}
</div>
{% endif %}

<div class="mm_coop_left_create">
    <form action="?tab=2&tool=action&action=create" method="post">
        <h4>Créer une nouvelle action</h4>
        <p>
            <label for="title">Titre : </label><input type="text" name="title" style="width: 70%"/>
        </p>
        <p>
            <label for="assigned_to">Acteur(s) : </label>
            <input type="checkbox" name="assigned_to_me" value="me"/><label for="me">{{my_name|default('Me')}}</label>
            <input type="checkbox" name="assigned_to_pa" value="pa"/><label for="pa">{{pa_name|default('Pa')}}</label>
        </p>
        <p>
            <label for="description">Description : </label><br/>
            <textarea name="description" rows="2" cols="100%"></textarea>
            <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="create new action" title="create new action"/>
        </p>
    </form>
</div>default/layout/mm_coop_left_action_form.tpl000064400000002575152004101310015245 0ustar00
    <form action="?tab=2&tool=action&action=create" method="post">    
        
        <nav class="mm_tabs">
            <a class="nohover" style="width: 100%">Créer une nouvelle action</a>
        </nav>
        
        <div style="margin-left: 25px; margin-top: 20px;">
            <p>
                <label style="width: 20%" for="title">Titre : </label><input type="text" name="title" style="width: 65%"/>
            </p>
            <p>
                <label style="width: 20%" for="assigned_to">Acteurs : </label>
                <input style="width: 3%" type="checkbox" name="assigned_to_me" value="hp"/><label style="width: 27%; margin-left: 5px;" for="me">{{hp_name | slice(0, 10) | default('HP')}}{% if hp_name | length > 10 %}.{% endif %}</label>
                <input style="width: 3%" type="checkbox" name="assigned_to_pa" value="su"/><label style="width: 27%; margin-left: 5px;" for="pa">{{su_name | slice(0, 10) | default('SU')}}{% if su_name | length > 10 %}.{% endif %}</label>
            </p>
            <p style="margin-top: 5px;">
                <label for="description">Description : </label><br/>
                <textarea name="description"  rows="4" style="width: 85%"></textarea>
                <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="create new action" title="create new action"/>
            </p>
        </div>
    </form>default/layout/mm_coop_left_action_items.tpl000064400000010302152004101310015406 0ustar00
{% for action in actions %}
<div class="mm_coop_left_item mm_flour small mm_flour_deroulant {{ loop.index is even ? 'even' : 'odd' }}" {% if action.is_deleted %}id="deleted"{% endif %}>
    <div class="title">
        <div id="text">
            <p>{{action.title}}</p>
        </div>

        <div id="buttons" class="mm_img_buttons_wrapper">
        <!-- Deletion   -->
        {% if action.is_deleted == null %}
            <!-- Noone asked for this image to be deleted -->
            <div class="mm_img_delete mm_img" src="{{img_bin}}" alt="delete" title="delete" data-id="{{action.tool_id}}" data-action="delete"></div>
        {% else %}
            <!-- This image has been suggested for deletion -->
            {% if action.is_deleted is sameas(my_subrole) %}
            <!-- I deleted this item. I can restore it -->
            <div class="mm_img_restore mm_img" src="{{img_restore}}" alt="restore" title="restore" data-id="{{action.tool_id}}" data-action="delete"></div>
            {% else %}
            <!-- My partner suggested to delete this item. Let's do it -->
            <div class="mm_img_delete mm_img" src="{{img_bin}}" alt="confirm delete" title="confirm delete" data-id="{{action.tool_id}}" data-action="delete"></div>
            {% endif %}
        {% endif %}

        <!-- Edition    -->
        <div class="mm_img_edit mm_img" alt="edit" title="edit" data-id="{{action.tool_id}}" data-action="edit"></div>

        <!-- Is ok      -->
        {% if (action.author_user_id == my_user_id) or (my_subrole is sameas('tutor'))%}
            {% if action.is_ok %}
                <!-- Je suis l'auteur et mon partenaire a validé -->
                <div class="mm_img_green_no mm_img" alt="validé" title="action validée" data-id="{{action.tool_id}}"></div>
            {% endif %}
        {% elseif my_subrole is not sameas('tutor') %}
            {% if action.is_ok %}
                <!-- J'ai déjà validé ce document -->
                <div class="mm_img_green mm_img" alt="validé" title="action validée" data-id="{{action.tool_id}}" data-action="validate"></div>
            {% else %}
                <!-- Je n'ai pas validé ce document -->
                <div class="mm_img_validate mm_img" alt="non-validé" title="action non-validée" data-id="{{action.tool_id}}" data-action="validate"></div>
            {% endif %}
        {% endif %}
        </div>
    </div>
    <div class="edit_details" id="{{action.tool_id}}">
        <form method="post" action="?tab=2&tool=action&action=update">
            <div style="margin-left: 25px;">
                <p>
                    <label style="width: 100px" for="title">Titre : </label>
                    <input style="width: 208px" type="text" name="title" value="{{action.title}}"/>
                </p>
                <p>
                    <label style="width: 100px" for="assigned_to">Acteur(s) : </label>
                    <input style="width: 10px" type="checkbox" name="assigned_to_me" value="hp" {% if action.hp_checked %} checked {% endif %}/>
                    <label style="width: 50px" for="me">{{hp_name|default('HP')}}</label>
                    <input style="width: 10px" type="checkbox" name="assigned_to_pa" value="su" {% if action.su_checked %} checked {% endif %}/>
                    <label style="width: 50px" for="pa">{{su_name|default('SU')}}</label>
                </p>
                <p style="margin-top: 5px;">
                    <label style="width: 100px" class="inlineBlock" for="description">Description : </label>
                    <textarea class="inlineBlock" name="description" rows="2" cols="27">{{action.description}}</textarea>
                    <input type="hidden" name="id" value="{{action.tool_id}}"/> <!-- This is dirty coding AND insecure. TODO : change -->
                    <input class="mm_img_submit inlineBlock" type="image" value="submit" src="{{img_create}}" alt="upaction" title="upaction"/>
                </p>
            </div>
        </form>
    </div>
    <div class="details" id="{{action.tool_id}}">
        {% if action.acteurs != null %}
        <p><b>Acteur(s) : </b>{{action.acteurs}}</p>
        {% endif %}
        <p><b>Description : </b>{{action.description | escape}}</p>
    </div>
</div>     
{% endfor %}default/layout/mm_coop_left_agenda.tpl000064400000021233152004101310014154 0ustar00{% if dates %}
<div class="mm_coop_left_items">
    {% for date in dates %}
    {% if date.is_deleted == 0 %}
    <div class="mm_coop_left_item">
    {% else %}
    <div class="mm_coop_left_item" id="deleted">
    {% endif %}
        <div id="title">
            <div id="text" style="display:inline-block; vertical-align: top; width: 50%;">
                <p>{{date.title}}</p>
            </div>
            
            <div id="buttons" style="display:inline-block; vertical-align: top; max-width: 50%; float:right;" class="mm_img">
                <!-- Deletion   -->
                {% if date.is_deleted == 0 %}
                <!-- Noone asked for this image to be deleted -->
                <a href="?tab=1&tool=agenda&action=delete&id={{date.tool_id}}" class="mm_img">
                    <img src="{{img_bin}}" alt="delete" title="delete"/>
                </a>
                {% else %}
                <!-- This image has been suggested for deletion -->
                <a href="?tab=1&tool=agenda&action=delete&id={{date.tool_id}}" class="mm_img">
                    {% if date.is_deleted == my_user_id %}
                    <!-- I deleted this item. I can restore it -->
                    <img src="{{img_restore}}" alt="restore" title="restore"/>
                    {% else %}
                    <!-- My partner suggested to delete this item. Let's do it -->
                    <img src="{{img_bin}}" alt="confirm delete" title="confirm delete"/>
                    {% endif %}
                </a>
                {% endif %}

                <!-- Is ok      -->
                {% if date.author_user_id == my_user_id %}
                    {% if date.is_ok %}
                        <!-- Je suis l'auteur et mon partenaire a validé -->
                        <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                    {% else %}
                        <!-- Je suis l'auteur et mon partenaire n'a pas validé -->
                        <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                    {% endif %}
                {% else %}
                    <a href="?tab=1&tool=agenda&action=validate&id={{date.tool_id}}" class="mm_img">
                        {% if date.is_ok %}
                            <!-- J'ai déjà validé ce document -->
                            <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                        {% else %}
                            <!-- Je n'ai pas validé ce document -->
                            <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                        {% endif %}
                    </a>
                {% endif %}

                <!-- Edition    -->
                <a href="?tab=1&tool=agenda&action=edit&id={{date.tool_id}}" class="mm_img">
                    <img src="{{img_edit}}" alt="edition" title="edition"/>
                </a>
            </div>
        </div>
        {% if edit_id == date.tool_id %}
        <div id="edit_details">
            <form method="post" action="?tab=1&tool=agenda&action=update">
                <p>
                    <label for="title">Titre : </label>
                    <input type="text" name="title" value="{{date.title}}"/>
                </p>
                <p class="mm_no_margin" style="margin-right: 0">
                    <label for="date_debut" class="mm_label_default">Debut : </label>
                    <input type="text" id="edit_datepicker_debut" class="mm_datepicker" name="date_debut" value="{{date.date_deb}}">
                    <input type="text" id="edit_timepicker_debut" class="mm_timepicker" name="time_debut" value="{{date.time_deb}}">
                    <br/>
                    <label for="date_fin" class="mm_label_default">Fin : </label>
                    <input type="text" id="edit_datepicker_fin" class="mm_datepicker" name="date_fin" value="{{date.date_fin}}">
                    <input type="text" id="edit_timepicker_fin" class="mm_timepicker" name="time_fin" value="{{date.time_fin}}">
                </p>
                <p>
                    <label for="description">Description : </label>
                    <textarea name="description" rows="2">{{date.description}}</textarea>
                    <input type="hidden" name="id" value="{{date.tool_id}}"/> <!-- This is dirty coding AND insecure. TODO : change -->
                    <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="update" title="update"/>
                </p>
            </form>
        </div>
        {% else %}
        <div id="details">{% if date.acteurs != null %}
            <p><b>Acteur(s) : </b>{{date.acteurs}}</p>
            {% endif %}
            <p><b>Description : </b>{{date.description}}</p>
            <p><b>Début : </b>{{date.date_deb}} à {{date.time_deb}}</p>
            {% if date.date_fin %}
            <p><b>Fin   : </b>{{date.date_fin}} à {{date.time_fin}}</p>
            {% endif %}
        </div>
        {% endif %}
    </div>     
    {% endfor %}
</div>
{% endif %}

<div class="mm_coop_left_create">
    <form action="?tab=1&tool=agenda&action=create" method="post">
        <h4>Créer une nouvelle date</h4>
        <p>
            <label for="title" class="mm_label_default">Titre : </label>
            <input type="text" name="title" style="width: 225px;"/>
        </p>
        <p class="mm_no_margin" style="margin-right: 0">
            <label for="date_debut" class="mm_label_default">Debut : </label>
            <input type="text" id="datepicker_debut" class="mm_datepicker" name="date_debut">
            <input type="text" id="timepicker_debut" class="mm_timepicker" name="time_debut">
            <br/>
            <label for="date_fin" class="mm_label_default">Fin : </label>
            <input type="text" id="datepicker_fin" class="mm_datepicker" name="date_fin">
            <input type="text" id="timepicker_fin" class="mm_timepicker" name="time_fin">
            <input type="checkbox" id="has_end_date" name="has_end_date"/>
            <label for="has_end_date" class="mm_label_default" id="checkbox_label">Désactiver</label>
        </p>
        <p>
            <label for="description">Description : </label><br/>
            <textarea name="description" rows="2" cols="100%"></textarea>
            <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="create new date" title="create new date"/>
        </p>
    </form>
</div>
        
<script>
    
    $('#has_end_date').click(function(){
        if( $('#has_end_date').is(':checked') ) {
            $('#checkbox_label').html('Activer');
            $('#datepicker_fin').attr('disabled', 'disabled').attr('value', '');
            $('#timepicker_fin').attr('disabled', 'disabled').attr('value', '');
        } else {
            $('#checkbox_label').html('Désactiver');
            $('#datepicker_fin').removeAttr('disabled');
            $('#timepicker_fin').removeAttr('disabled');
        }
    });
    
    $.datepicker.regional['fr'] = {clearText: 'Effacer', clearStatus: '',
		closeText: 'Fermer', closeStatus: 'Fermer sans modifier',
		prevText: '<Préc', prevStatus: 'Voir le mois précédent',
		nextText: 'Suiv>', nextStatus: 'Voir le mois suivant',
		currentText: 'Courant', currentStatus: 'Voir le mois courant',
		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
		'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
		monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
		'Jul','Aoû','Sep','Oct','Nov','Déc'],
		monthStatus: 'Voir un autre mois', yearStatus: 'Voir un autre année',
		weekHeader: 'Sm', weekStatus: '',
		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
		dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
		dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
		dayStatus: 'Utiliser DD comme premier jour de la semaine', dateStatus: 'Choisir le DD, MM d',
		dateFormat: 'dd/mm/yy', firstDay: 0, 
		initStatus: 'Choisir la date', isRTL: false};
    
    $.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );
    
    // Main form : create
    $("#datepicker_debut").datepicker({dateFormat: 'dd-mm-yy'});
    $("#datepicker_fin").datepicker({dateFormat: 'dd-mm-yy'});
    $('#timepicker_debut').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});
    $('#timepicker_fin').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});
    
    // Edit form
    $("#edit_datepicker_debut").datepicker({dateFormat: 'dd-mm-yy'});
    $("#edit_datepicker_fin").datepicker({dateFormat: 'dd-mm-yy'});
    $('#edit_timepicker_debut').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});
    $('#edit_timepicker_fin').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});
    
</script>default/layout/mm_coop_left_agenda_form.tpl000064400000007216152004101310015204 0ustar00
    <form action="?tab=1&tool=agenda&action=create" method="post">    
        
        <nav class="mm_tabs">
            <a class="nohover" style="width: 100%">Créer une nouvelle date</a>
        </nav>
        
        <div style="margin-left: 25px; margin-top: 20px;">
            <p>
                <label style="width: 15%" for="title" class="mm_label_default">Titre : </label>
                <input type="text" name="title" style="width: 74.5%;"/>
            </p>
            <p class="mm_no_margin" style="margin-right: 0; margin-top: 5px;">
                <label style="width: 15%" for="date_debut" class="mm_label_default">Debut : </label>
                <input style="width: 15%" type="text" id="datepicker_debut" class="mm_datepicker" name="date_debut">
                <input style="width: 15%" type="text" id="timepicker_debut" class="mm_timepicker" name="time_debut">
                <label style="width: 9%" for="date_fin" class="mm_label_default">Fin : </label>
                <input style="width: 15%" type="text" id="datepicker_fin" class="mm_datepicker mm_look_disabled" name="date_fin">
                <input style="width: 15%" type="text" id="timepicker_fin" class="mm_timepicker mm_look_disabled" name="time_fin">
            </p>
            <p style="margin-top: 5px;">
                <label for="description">Description : </label><br/>
                <textarea name="description" rows="4" style="width: 90%"></textarea>
                <input class="mm_img_submit" type="image" value="submit" src="{{img_create}}" alt="create new date" title="create new date"/>
            </p>
        </div>
    </form>
        
<script language="javascript" type="text/javascript">
    $(function() {
        // Form functions
        $('#datepicker_fin, #timepicker_fin').click(function(){
            $(this).removeClass('mm_look_disabled');
        })
        .focusout(function() {
            if ($(this).val().length < 2) $(this).addClass('mm_look_disabled');
        })
        .change(function() {
            $(this).removeClass('mm_look_disabled');
        });

        $.datepicker.regional['fr'] = {clearText: 'Effacer', clearStatus: '',
            closeText: 'Fermer', closeStatus: 'Fermer sans modifier',
            prevText: '<Préc', prevStatus: 'Voir le mois précédent',
            nextText: 'Suiv>', nextStatus: 'Voir le mois suivant',
            currentText: 'Courant', currentStatus: 'Voir le mois courant',
            monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
            'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
            monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
            'Jul','Aoû','Sep','Oct','Nov','Déc'],
            monthStatus: 'Voir un autre mois', yearStatus: 'Voir un autre année',
            weekHeader: 'Sm', weekStatus: '',
            dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
            dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
            dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
            dayStatus: 'Utiliser DD comme premier jour de la semaine', dateStatus: 'Choisir le DD, MM d',
            dateFormat: 'dd/mm/yy', firstDay: 0, 
            initStatus: 'Choisir la date', isRTL: false};

        $.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );

        // Main form : create
        $("#datepicker_debut").datepicker({dateFormat: 'dd-mm-yy'});
        $("#datepicker_fin").datepicker({dateFormat: 'dd-mm-yy'});
        $('#timepicker_debut').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});
        $('#timepicker_fin').timepicker({scrollDefaultNow: true, timeFormat: 'H:i'});

    });
</script>default/layout/mm_coop_left_agenda_items.tpl000064400000011074152004101310015357 0ustar00
{% for date in dates %}
<div class="mm_coop_left_item mm_flour small mm_flour_deroulant {{ loop.index is even ? 'even' : 'odd' }}" {% if date.is_deleted %}id="deleted"{% endif %}>
    <div class="title">
        <div id="text">
            <p>{{date.title}}</p>
        </div>

        <div id="buttons" class="mm_img_buttons_wrapper">

        <!-- Deletion   -->
        {% if date.is_deleted == null %}
            <!-- Noone asked for this image to be deleted -->
            <div class="mm_img_delete mm_img" alt="delete" title="delete" data-id="{{date.tool_id}}" data-action="delete"></div>
        {% else %}
            <!-- This image has been suggested for deletion -->
            {% if date.is_deleted is sameas(my_subrole) %}
            <!-- I deleted this item. I can restore it -->
            <div class="mm_img_restore mm_img" alt="restore" title="restore" data-id="{{date.tool_id}}" data-action="delete"></div>
            {% else %}
            <!-- My partner suggested to delete this item. Let's do it -->
            <div class="mm_img_delete mm_img" alt="confirm delete" title="confirm delete" data-id="{{date.tool_id}}" data-action="delete"></div>
            {% endif %}
        {% endif %}

        <!-- Edition    -->
            <div class="mm_img_edit mm_img" alt="edition" title="edition" data-id="{{date.tool_id}}" data-action="edit"></div>

        <!-- Is ok      -->
        {% if (date.author_user_id == my_user_id) or (my_subrole is sameas('tutor')) %}
            {% if date.is_ok %}
                <!-- Je suis l'auteur et mon partenaire a validé -->
                <div class="mm_img_green_no mm_img" alt="validé" title="date validée" data-id="{{date.tool_id}}"></div>
            {% endif %}
        {% elseif my_subrole is not sameas('tutor') %}
            {% if date.is_ok %}
                <!-- J'ai déjà validé ce document -->
                <div class="mm_img_green mm_img" alt="validé" title="date validée" data-id="{{date.tool_id}}" data-action="validate"></div>
            {% else %}
                <!-- Je n'ai pas validé ce document -->
                <div class="mm_img_validate mm_img" alt="non-validé" title="date non-validée" data-id="{{date.tool_id}}" data-action="validate"></div>
            {% endif %}
        {% endif %}

        </div>
    </div>
    <div class="edit_details" id="{{date.tool_id}}">
        <form method="post" action="?tab=1&tool=agenda&action=update">
            <div style="margin-left: 25px;">
                <p>
                    <label style="width: 50px" for="title">Titre : </label>
                    <input style="width: 226px" type="text" name="title" value="{{date.title}}"/>
                </p>
                <p class="mm_no_margin" style="margin-right: 0">
                    <label style="width: 50px" for="date_debut" class="mm_label_default">Du </label>
                    <input style="width: 70px" type="text" id="edit_datepicker_debut" class="mm_datepicker" name="date_debut" value="{{date.date_deb}}">
                    <input style="width: 48px" type="text" id="edit_timepicker_debut" class="mm_timepicker" name="time_debut" value="{{date.time_deb}}">
                    <label style="width: 20px" for="date_fin" class="mm_label_default">au </label>
                    <input style="width: 70px" type="text" id="edit_datepicker_fin" class="mm_datepicker" name="date_fin" value="{{date.date_fin}}">
                    <input style="width: 48px" type="text" id="edit_timepicker_fin" class="mm_timepicker" name="time_fin" value="{{date.time_fin}}">
                </p>
                <p style="margin-top: 5px;">
                    <label class="inlineBlock" style="width: 100px" for="description">Description : </label>
                    <textarea class="inlineBlock" name="description" rows="2" cols="20">{{date.description}}</textarea>
                    <input type="hidden" name="id" value="{{date.tool_id}}"/> <!-- This is dirty coding AND insecure. TODO : change -->
                    <input class="mm_img_submit inlineBlock" type="image" value="submit" src="{{img_create}}" alt="update" title="update"/>
                </p>
            </div>
        </form>
    </div>
    <div class="details" id="{{date.tool_id}}">
        {% if date.acteurs != null %}
        <p><b>Acteur(s) : </b>{{date.acteurs}}</p>
        {% endif %}
        <p><b>Description : </b>{{date.description | escape}}</p>
        <p><b>Début : </b>{{date.date_deb}} à {{date.time_deb}}</p>
        {% if date.date_fin %}
        <p><b>Fin   : </b>{{date.date_fin}} à {{date.time_fin}}</p>
        {% endif %}
    </div>
</div>     
{% endfor %}default/layout/mm_coop_left_docs.tpl000064400000012127152004101310013667 0ustar00<div class="mm_coop_left_items" id="display_documents">
    {% if docs %}
    {% for doc in docs %}
    {% if doc.is_deleted == 0 %}
    <div class="mm_coop_left_item">
    {% else %}
    <div class="mm_coop_left_item" id="deleted">
    {% endif %}
        <div id="title">
            <div id="text" style="display:inline-block; vertical-align: top; width: 50%;">
                <p><a href="{{web_path}}main/cooperation/files/{{couple.couple_id}}/{{couple.type}}/{{doc.title}}">{{doc.title}}</a></p>
            </div>
            
            <div id="buttons" style="display:inline-block; vertical-align: top; max-width: 50%; float:right;" class="mm_img">
                <!-- Deletion   -->
                {% if doc.is_deleted == 0 %}
                <!-- Noone asked for this image to be deleted -->
                <a href="?tab={{current_tab}}&tool=doc&action=delete&id={{doc.tool_id}}" class="mm_img">
                    <img src="{{img_bin}}" alt="delete" title="delete"/>
                </a>
                {% else %}
                <!-- This image has been suggested for deletion -->
                <a href="?tab={{current_tab}}&tool=doc&action=delete&id={{doc.tool_id}}" class="mm_img">
                    {% if doc.is_deleted == my_user_id %}
                    <!-- I deleted this item. I can restore it -->
                    <img src="{{img_restore}}" alt="restore" title="restore"/>
                    {% else %}
                    <!-- My partner suggested to delete this item. Let's do it -->
                    <img src="{{img_bin}}" alt="confirm delete" title="confirm delete"/>
                    {% endif %}
                </a>
                {% endif %}

                <!-- Is ok      -->
                {% if doc.author_user_id == my_user_id %}
                    {% if doc.is_ok %}
                        <!-- Je suis l'auteur et mon partenaire a validé -->
                        <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                    {% else %}
                        <!-- Je suis l'auteur et mon partenaire n'a pas validé -->
                        <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                    {% endif %}
                {% else %}
                    <a href="?tab={{current_tab}}&tool=doc&action=validate&id={{doc.tool_id}}" class="mm_img">
                        {% if doc.is_ok %}
                            <!-- J'ai déjà validé ce document -->
                            <img src="{{img_ok_green}}" alt="validé" title="document validé"/>
                        {% else %}
                            <!-- Je n'ai pas validé ce document -->
                            <img src="{{img_ok}}" alt="non-validé" title="document non-validé"/>
                        {% endif %}
                    </a>
                {% endif %}
            </div>
        </div>
    </div>
    {% endfor %}
    {% endif %}
</div>

<div class="mm_coop_left_create">
    <div id="drag_and_drop">
        <p><em>Drag and drop files here</em></p>
    </div>
    <div class="mm_file_upload_button">
        <form id="file_form" doc="?tab={{current_tab}}" method="post" enctype="multipart/form-data">
            <input type="file" name="file" id="file_input" style="display:inline:block" title="Click here to pick a file manually"/>
        </form>
    </div>
</div>
            
<script>
    $(function() {
        // Autosumbit on file button
        $("#file_input").change(function(){
            $("#file_form").submit();
        });

        // Add a dataTransfer property to events
        $.event.props.push("dataTransfer");
    
        // Prevent opening the file in the browser
        $('#drag_and_drop').bind({
            dragenter : dragenter,
            dragleave  : dragleave,
            dragover  : dragover,
            drop      : drop
        });
    });
    
    function do_nothing(e) {
        e.stopPropagation();
        e.preventDefault();
    }
    
    function dragenter(e) {
        do_nothing(e);
        console.log('dragenter');
        $('#drag_and_drop').addClass('dnd_hover');
    }

    function dragleave(e) {
        do_nothing(e);
        console.log('dragleave');
        $('#drag_and_drop').removeClass('dnd_hover');
    }

    function dragover(e) {
        do_nothing(e);
    }

    function drop(e) {
        do_nothing(e);
        console.log(e.dataTransfer);

        var files = e.dataTransfer.files;

        // On vérifie que des fichiers ont bien été déposés
        if(files.length>0){
            upload(files, $(this), 0);
        }
    }
    
    function upload(files, area, index) {
        var thisfile = files[index];
        var php_target   = "{{web_path}}main/cooperation/upload.php";
        var php_redirect = "{{web_path}}main/cooperation/index.php";
        
        var xhr = new XMLHttpRequest();
        xhr.open('POST', php_target, false); // false : synchronous => wait before you redirect
        var form = new FormData();
        form.append('file', thisfile);
        xhr.send(form);
        // window.location.replace(php_redirect);
        window.location.href = php_redirect;
    }
</script>default/layout/mm_coop_left_docs_form.tpl000064400000011021152004101310014702 0ustar00
    <nav class="mm_tabs">
        <a class="nohover" style="width: 100%">Créer un nouveau document</a>
    </nav>

    <div class="mm_text_info" id="drag_and_drop">
        <p>Glissez et déposez vos fichier ici, <br/>ou cliquez pour ouvrir l'explorateur.</p>
    </div>
    <div class="mm_file_upload_button" hidden>
        <form id="file_form" doc="?tab={{current_tab}}" method="post" enctype="multipart/form-data">
            <input type="file" name="file" id="file_input" style="width: 80%;" title="Click here to pick a file manually"/>
        </form>
    </div>
            
<script>
    $(function() {
        // Clicking on droparea == clicking on input
        $('#drag_and_drop').click(function() {
            $('form#file_form input').click();
        });

        // Autosumbit on change
        $("#file_input").change(function() {
            console.log('#file_input changed');
            var elem = document.getElementById('file_input');
            var file = elem.files[0];
            if (file) {
                console.log('File received, lets call upload');
                console.log(file);
                var default_text_for_docs_form = $('.mm_text_info p').html();
                $('.mm_text_info p').html('Téléchargement en cours...');
                upload(file, default_text_for_docs_form);
            } else {
                console.log('No file received');
            }
        });

        // Add a dataTransfer property to events
        $.event.props.push("dataTransfer");
    
        // Prevent opening the file in the browser
        $('#drag_and_drop').bind({
            dragenter : dragenter,
            dragleave : dragleave,
            dragover  : dragover,
            drop      : drop
        });
    });
    
    function do_nothing(e) {
        e.stopPropagation();
        e.preventDefault();
    }
    
    function dragenter(e) {
        do_nothing(e);
        console.log('dragenter');
        $('#drag_and_drop').addClass('dnd_hover');
    }

    function dragleave(e) {
        do_nothing(e);
        console.log('dragleave');
        $('#drag_and_drop').removeClass('dnd_hover');
    }

    function dragover(e) {
        do_nothing(e);
    }

    function drop(e) {
        do_nothing(e);

        var files = e.dataTransfer.files;

        // On vérifie que des fichiers ont bien été déposés
        if (files.length>0 && files[0]){
            console.log('File received, lets call upload');
            console.log(files[0]);
            upload(files[0]);
        } else {
            console.log('No file was dropped');
        }
    }
    
    function upload(file, default_text_for_docs_form) {
        var php_target   = "{{web_path}}main/cooperation/upload.php?couple_id={{couple.couple_id}}&couple_type={{couple.type}}";
        
        var form = new FormData();
        form.append('file', file);
        console.log('Form created');
        
        $.ajax({
            url: php_target,
            data: form,
            processData: false,
            contentType: false,
            type: 'POST',
            success: function(data){
                $('.mm_text_info p').html(default_text_for_docs_form);
                if (data != 'ok') {
                    alert(data);
                } else {
                    refreshLeft();
                }
            },
        });
    }

    {# THIS METHOD IS NOT USER ANYWHERE ANYMORE #}
    function sendXHR() {
        var xhr = createXHR();
        xhr.open('POST', php_target, false); // false : synchronous => wait before you redirect
        xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        
        // Action on request received.
        xhr.onreadystatechange = function() {
            console.log("XHR state = " + xhr.readyState);
            if (xhr.readyState == 4) {
                alert(xhr.responseText); // Données textuelles récupérées
            }
        };

        xhr.send(form);
        console.log('XHR sent');
    }

    function createXHR() {
        var xhr = null;

        if (window.XMLHttpRequest || window.ActiveXObject) {
            if (window.ActiveXObject) {
                try {
                    xhr = new ActiveXObject("Msxml2.XMLHTTP");
                } catch(e) {
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
            } else {
                xhr = new XMLHttpRequest(); 
            }
        } else {
            alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
            return null;
        }

        return xhr;
    }
</script>default/layout/mm_coop_left_docs_items.tpl000064400000005131152004101310015065 0ustar00
{% for doc in docs %}

{# set href = web_path ~ "main/cooperation/files/" ~ couple.couple_id ~ "/" ~ couple.type ~ "/" ~ doc.title #}
{% set href = web_path ~ "main/cooperation/download.php?couple_id=" ~ couple.couple_id ~ "&couple_type=" ~ couple.type ~ "&title=" ~ doc.title | url_encode %}

{% spaceless %}
    <div class="mm_coop_left_item mm_flour small {{ loop.index is even ? 'even' : 'odd' }}" {% if doc.is_deleted %}id="deleted"{% endif %}>
{% endspaceless%}
    
    <div class="title">
        <div id="text" class="cliquable" data-href="{{href}}">
            <p>{{doc.title}}</p>
        </div>

        <div id="buttons" class="mm_img_buttons_wrapper">
        {% if not doc.is_deleted %}
            <!-- Noone asked for this image to be deleted -->
            <div class="mm_img_delete mm_img" src="{{img_bin}}" alt="delete" title="delete" data-id="{{doc.tool_id}}" data-action="delete"></div>
        {% else %}
            <!-- This image has been suggested for deletion -->
            {% if doc.is_deleted is sameas(my_subrole) %}
            <!-- I deleted this item. I can restore it -->
            <div class="mm_img_restore mm_img" src="{{img_restore}}" alt="restore" title="restore" data-id="{{doc.tool_id}}" data-action="delete"></div>
            {% else %}
            <!-- My partner suggested to delete this item. Let's do it -->
            <div class="mm_img_delete mm_img" src="{{img_bin}}" alt="confirm delete" title="confirm delete" data-id="{{doc.tool_id}}" data-action="delete"></div>
            {% endif %}
        {% endif %}

        <!-- Download -->
        <a href="{{href}}"><div class="mm_img mm_img_download"></div></a>
        
        <!-- Is ok -->
        {% if (doc.author_user_id == my_user_id) or (my_subrole is sameas('tutor')) %}
            {% if doc.is_ok %}
                <!-- Je suis l'auteur et mon partenaire a validé -->
                <div class="mm_img_green_no mm_img" alt="validé" title="document validé" data-id="{{doc.tool_id}}"></div>
            {% endif %}
        {% elseif my_subrole is not sameas('tutor') %}
            {% if doc.is_ok %}
                <!-- J'ai déjà validé ce document -->
                <div class="mm_img_green mm_img" alt="validé" title="document validé" data-id="{{doc.tool_id}}" data-action="validate"></div>
            {% else %}
                <!-- Je n'ai pas validé ce document -->
                <div class="mm_img_validate mm_img" alt="non-validé" title="document non-validé" data-id="{{doc.tool_id}}" data-action="validate"></div>
            {% endif %}
        {% endif %}
        </div>
    </div>
</div>
{% endfor %}default/layout/mm_coop_left_eval.tpl000064400000007323152004101310013670 0ustar00<div class="mm_building_trick"></div>
<div class="mm_building" id="form_left_list">
    <div class="mm_flour">
        {% include "default/layout/mm_tabs.tpl" %}
    </div>
    {% if questions %}
    <div>
        <form action="#" method="GET">
            <input name="action" value="create" hidden/>
            <input name="tab" value="{{current_tab}}" hidden/>
            {% set is_even = "well I dont know yet" %}
            <div id="display_evals">
                {% for question in questions %}
                {% set is_even = loop.index is even %}
                <div class="mm_coop_left_item mm_flour {% if my_subrole != 'tutor' %}big{% else %}average{% endif %} {{ is_even ? 'even' : 'odd' }}" id="mm_coop_left_eval_item" data-id="{{question.id}}">
                    <div class="mm_eval_question"><p><strong>{{question.question}}</strong></p></div>
                    {% if evals[question.id] is defined %}
                        {% set evaluation = evals[question.id]['eval'] %}
                    {% else %}
                        {% set evaluation = '1' %}
                    {% endif %}
                    <div class="mm_eval">
                        <p style="display: inline-block; width: 250px;">Votre précédente évaluation : </p>
                        <div id="mm_slider1" data-id="{{question.id}}" data-value="{{evaluation}}" style="display: inline-block; width: 150px; margin-left: 7px;"></div>
                    </div>
                    {% if my_subrole != 'tutor' %}
                    <div class="mm_eval">
                        <p style="display: inline-block; width: 250px;">Votre nouvelle évaluation : </p>
                        <div id="mm_slider2" data-id="{{question.id}}" data-value="{{evaluation}}" style="display: inline-block; width: 150px; margin-left: 7px;"></div>
                        <input name="{{question.id}}" value="{{evaluation}}" hidden/>
                    </div>
                    {% endif %}
                </div>
                {% endfor %}
            </div>
            {% if my_subrole != 'tutor' %}
            <div class="mm_flour {{ is_even ? 'odd' : 'even' }}">
                <input class="mm_eval_send" id="mm_eval_submit_button" type="submit" value="Valider" style="width: 100px;"/>
            </div>
            {% endif %}
        </form>
    </div>
    {% if my_subrole == 'tutor' %}
        <div class="mm_flour small {{ is_even ? 'odd' : 'even' }}">
            <button class="tutor_impressions" data-id="{{couple.student_user_id}}" style="cursor: pointer; float: right;">Voir le graph</button>
            <div id="eval_form" title="Impressions"></div>
            <script>
                $( "#eval_form" ).dialog({
                    autoOpen: false,
                    height: 550,
                    width: 650,
                    modal: true,
                    buttons: {
                        "Cancel": function() {
                            $(this).dialog("close");
                        }
                    }
                });
                $(".tutor_impressions").button().click(function() {
                    $.ajax({
                        type: 'GET', 
                        url: '../rh/eval.php', 
                        data: {id: $(this).attr('data-id')}, 
                        success: function(msg) {
                            $( "#eval_form" ).html(msg);
                            $( "#eval_form" ).dialog("open");
                        }
                    });
                });
            </script>
        </div>
    {% endif %}
    {% endif %}

    <script language="javascript" type="text/javascript">
        $(function() {
            $("[hidden]").hide();
            mmSliderStuff();            
        });
    </script>
</div>default/layout/mm_coop_left_form.tpl000064400000000511152004101310013674 0ustar00
{# Here we switch between the tabs. Each one is a tool. #}

{% if current_tab == 0 %}
    {% include "default/layout/mm_coop_left_docs_form.tpl" %}
{% elseif current_tab == 1 %}
    {% include "default/layout/mm_coop_left_agenda_form.tpl" %}
{% else %}
    {% include "default/layout/mm_coop_left_action_form.tpl" %}
{% endif %}default/layout/mm_coop_left_formulaire.tpl000064400000003746152004101310015113 0ustar00<div class="mm_building_trick"></div>
<div class="mm_building" id="form_left_list">
    <div class="mm_flour">
        {% include "default/layout/mm_tabs.tpl" %}
    </div>
    {% for form in forms %}
    {% set id = form.id %}
    {% if my_subrole == 'tutor' or form.state == 1 %}
    <div class="mm_coop_left_item mm_flour small {{ loop.index is even ? 'even' : 'odd' }}" id="mm_coop_left_form_item" data-id="{{id}}">
        <div class="title">
            <div id="text" style="display:inline-block; vertical-align: top; max-width: 80%;">
                <p><strong>{{form.title}}</strong></p>
            </div>
            <div class="mm_img" id="buttons" style="display:inline-block; vertical-align: top; max-width: 19%; float:right;">
                <div class="mm_img_zoom mm_img" src="{{img_edit}}" alt="fill the form" title="fill the form" data-id="{{id}}" onclick="form_replace_tchat({{id}})"></div>
                {% if my_subrole == 'tutor' %}
                    {% if form.state == 2 %}
                        <div class="mm_img_green_no mm_img" alt="validé" title="document validé" data-id="{{id}}"></div>
                    {% elseif form.state == 1 %}
                        <div class="mm_img_unlock mm_img" id="verrou" alt="hide the form to user" title="hide the form to user" data-id="{{id}}" onclick="form_set_state({{id}}, 0)"></div>
                    {% else %}
                        <div class="mm_img_lock mm_img" id="verrou" alt="display the form to user" title="display the form to user" data-id="{{id}}" onclick="form_set_state({{id}}, 1)"></div>
                    {% endif %}
                {% endif %}
            </div>
        </div>
    </div>
    {% endif %}
    {% endfor %}
</div>

<script>
    $(function() {
        var listIsEmpty = $('#form_left_list > .mm_flour').size() === 1;
        if (listIsEmpty) {
            $('#form_left_list').append('<div class="mm_flour"><p class="mm_text_info">Aucun élément à afficher</p></div>');
        }
    });
</script>
    default/layout/mm_coop_left_items.tpl000064400000000436152004101310014060 0ustar00
<div class="mm_coop_left_items" id="send_items_here"></div>

<script language="javascript" type="text/javascript">
    $(function() {
        var interval = {{refresh_time_tools|default('4000')}};
        mmStartRefreshLeft("{{web_path}}", {{current_tab}}, interval);
    });
</script>default/layout/mm_coop_main.tpl000064400000004552152004101310012654 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

    <div class=span12>
        
        {# COLUMNS #}
        <div class="mm_column mm_building_wrapper" id="mm_column_left">
            {% if (part == 'tuteur') and (current_tab != 0) %}
                {% if current_tab == 2 %}
                    {% include "default/layout/mm_coop_left_eval.tpl" %}
                {% elseif current_tab == 1 %}
                    {% include "default/layout/mm_coop_left_formulaire.tpl" %}
                {% endif %}
            {% else %}
                <div class="mm_building_trick"></div>
                <div class="mm_building" id="send_items_here">
                    <div class="mm_flour">
                        {% include "default/layout/mm_tabs.tpl" %}
                    </div>
                    <div class="mm_building_wrapper mm_coop_left_items_wrapper">
                        {% include "default/layout/mm_coop_left.tpl" %}
                    </div>
                    <div class="mm_flour form ">
                        {% if current_tab == 0 %}
                            {% include "default/layout/mm_coop_left_docs_form.tpl" %}
                        {% elseif current_tab == 1 %}
                            {% include "default/layout/mm_coop_left_agenda_form.tpl" %}
                        {% else %}
                            {% include "default/layout/mm_coop_left_action_form.tpl" %}
                        {% endif %}
                    </div>
                </div>
            {% endif %}
        </div>
        
        <div class="mm_column mm_building_wrapper" id="mm_column_right">
            {% include "default/layout/mm_coop_right.tpl" %} 
        </div>
        
        <script language="javascript" type="text/javascript">
            $(function() {
            
            {% if part is sameas('cooperation') or current_tab == 0 %}
                // Refresh left
                var intervalLeft = {{refresh_time_tools|default('4000')}};
                mmStartRefreshLeft("{{web_path}}", {{current_tab}}, intervalLeft);
            {% endif %}                
                
                // Refresh tchat
                var intervalRight = {{refresh_time_tchat|default('4000')}};
                mmStartRefreshTchat(intervalRight, "{{couple.couple_id}}", "{{couple.type}}");
            });
        </script>
    </div>

{% endblock %}default/layout/mm_coop_right.tpl000064400000004051152004101310013037 0ustar00
<div class="mm_building_trick"></div>
<div class="mm_building" id="mm_building_tchat" style="width: 98%">

    <div class="mm_flour">
        <nav class="mm_tabs" style="width: 100%"><a class="nohover" style="width: 100%">Tchat</a></nav>
    </div>

    <div class="mm_tchat_display mm_building_block mm_flour" id="mm_tchat"></div>

    <div class="mm_tchat_form mm_flour odd">
        <form method="POST" action="?tab={{current_tab}}&tool=tchat&action=create" id="tchat_form">
            <label for="description" id="message_form_label" style="margin-left: 6px;">Message : </label>
            <input class="inlineBlock" type="text" name="description" style="width:80%"/>
            <input class="mm_img_submit inlineBlock" type="image" value="submit" src="{{img_create}}" alt="update" title="update" style="margin-bottom: 8px; float: right;"/>
        </form>
        <script language="javascript" type="text/javascript">
        $(function() {
            $("#tchat_form").submit(function(e) {
                e.stopPropagation();
                e.preventDefault();

                console.log('Passage dans le script');

                var description = $("#tchat_form > input[name=description]").val();
                $("#tchat_form > input[name=description]").val(''); // Remove value

                // First, appppend a new line in the file
                $('#mm_tchat').append('<div class="mm_tchat_item">');
                $('#mm_tchat').append('<div id="item"><p><em class="mm_subject">{{my_name | capitalize}}</em> ' + HTMLentities(description) + '</p></div>');
                $('#mm_tchat').append('<div id="date"><p>à linstant</p></div>');
                $('#mm_tchat').append('</div>');

                scrollDown();

                // Then calll the db
                $.ajax({
                    type: 'POST', 
                    url:  $("#tchat_form").attr('action'), 
                    data: {
                        description: description
                    }, 
                });
            });
        });
        </script>
    </div>
</div>
default/layout/mm_coop_right_formulaire.tpl000064400000005172152004101310015271 0ustar00<div class="mm_building_wrapper">
<div class="mm_building_trick"></div>
<div class="mm_building wide">
    
    <div class="mm_flour">
        <nav class="mm_tabs" style="width: 100%"><a class="nohover" style="width: 100%">Réponses</a></nav>
    </div>
    
    {% if questions is empty %}
    <div class="mm_flour small">
        <p class="mm_text_info">Cette liste est vide.</p>
    </div>
    {% else %}
        {% if subrole == 'hp' or subrole == 'startup' %}
            <form method="POST" action="?tab=1">
                {% for question in questions %}
                {% set id = question.id %}
                <div class="mm_form_question mm_flour big">
                    <p><strong>{{question.question}}</strong></p>
                    <textarea class="mm_form_question_answer" name="{{id}}">{% if question.answer is defined %}{{question.answer | escape}}{% endif %}</textarea>
                </div>
                {% endfor %}
                <div id="mm_form_validate" class="mm_flour big">
                    <input  name="form_id" value="{{form_id}}" hidden/>
                    <button type="submit" class="mm_form_button" name="submit">Envoyer</button>
                    <button type="submit" class="mm_form_button" name="save">Enregistrer</button>
                    <button type="submit" class="mm_form_button" name="cancel">Quitter</button>
                </div>    
                <script language="javascript" type="text/javascript">
                    $(function() {
                        $('[hidden]').hide();
                        $('.mm_form_button').css('float', 'right').css('margin-right', '4px').button();
                        $('.mm_form_button[name=submit]').css('margin-right', '9px');
                        $('.mm_form_button[name=save]').click(function(event) {
                            answers = [];
                            $('.mm_form_question > textarea').each(function() {
                                answers[$(this).attr('name')] = $(this).attr('value');
                            });
                            mm_save_form({{form_id}}, answers);
                        });
                    });
                </script>
            </form>

        {% else %}
            {% for question in questions %}
            {% set id = question.id %}
            <div class="mm_form_question mm_flour big">
                <p><strong>{{question.question}}</strong></p>
                <p class="mm_form_question_answer" name="{{id}}">{% if question.answer is defined %}{{question.answer | escape}}{% endif %}</p>
            </div>
            {% endfor %}
        {% endif %}
    {% endif %}
</div>
</div>
default/layout/mm_coop_tchat.tpl000064400000003070152004101310013025 0ustar00
{% if logs %}
{% for log in logs %}
    {% if log.verb %}
    {% if log.is_deleted == false %}
    <div class="mm_log_item" id="{{log.id}}">
        <div id="date">
            <p>{% if log.day | length < 2 %}0{% endif %}{{log.day}}/{% if log.month | length < 2 %}0{% endif %}{{log.month}} {% if log.hour | length < 2 %}0{% endif %}{{log.hour}}:{% if log.minute | length < 2 %}0{% endif %}{{log.minute}}</p>
        </div>
        <div id="item">
            <p><em class="mm_subject">{{log.subject}}</em> a <em class="mm_verb">{{log.verb}}</em> <em class="mm_object">{{log.tool_description}}</em> <em class="mm_end">{{log.end}}</em></p>
            {% if (log.option1 is defined) and (log.option1 != null) %}
            <p>Vous pouvez 
                <button class="mm_option" data-action="{{log.action1}}" data-id="{{log.tool_id}}">{{log.option1}}</button> 
                ou 
                <button class="mm_option" data-action="{{log.action2}}" data-id="{{log.tool_id}}">{{log.option2}}</button>.
            </p>
            {% endif%}
        </div>
    {% endif %}
    {% else %}
    <div class="mm_tchat_item">
        <div id="date">
            <p>{% if log.day | length < 2 %}0{% endif %}{{log.day}}/{% if log.month | length < 2 %}0{% endif %}{{log.month}} {% if log.hour | length < 2 %}0{% endif %}{{log.hour}}:{% if log.minute | length < 2 %}0{% endif %}{{log.minute}}</p>
        </div>
        <div id="item">
            <p><em class="mm_subject">{{log.author_name}}</em>{{log.description | escape}}</p>
        </div>
    {% endif %}
    </div>
{% endfor %}
{% endif %}default/layout/mm_course_building.tpl000064400000014251152004101310014062 0ustar00
<div class="mm_building_wrapper mm_column" id="mm_column_formation" data-nom="{{nom}}">
    <div class="mm_building_trick"></div>
    <div class="mm_building">
        <div class="mm_flour">
            <nav class="mm_tabs">
                <a class="nohover wide">{{nom}}</a>
            </nav>
        </div>
            
        {% for elem in tab %}
            {% for stone in elem.content %}
            {% if nom is not sameas('Témoignages') or stone.lp_type is sameas('4') %}
            <div class="mm_flour big {{ loop.index is even ? 'even' : 'odd' }}">
                                
                {% set lp_id = "data-lpid = " ~ stone.id %}
                
                {% if nom is sameas('Témoignages') %}
                    {% set link = "data-cid = " ~ stone.c_id %}
                {% elseif stone.is_turbomedia %}
                    {% set link = "data-href = '" ~ web_path ~ "main/formation/turbo_view.php?c_id=" ~ stone.c_id ~ "&lp_id=" ~ stone.id ~ "'" %}
                {% else %}
                    {% set link = "data-href = '" ~ web_path ~ "main/newscorm/lp_controller.php?cidReq=" ~ stone.code ~ "&id_session=0&gidReq=0&action=view&lp_id=" ~ stone.id ~ "&isStudentView=true" ~ "'" %}
                {% endif %}
                
                <div class="cliquable" {{link}} {{lp_id}} {% if stone.ref is defined %}data-videoid="{{stone.ref}}"{% endif %}>
                    <div class="mm_scorebar_left_div inlineBlock">
                        <h4>{{stone.title|default('Title of the module')}}</h4>
                        <!-- <p>{{stone.description|default('Description du cours')}}</p> -->
                        {% set rating_c_id = attribute(ratings, stone.c_id) %}
                        {% set rating = attribute(rating_c_id, stone.id) %}
                        <div class="mm_rating" data-rating="{{rating | default('0')}}" data-c_id="{{stone.c_id}}" data-lp_id="{{stone.id}}"></div>
                    </div>
                    <div class="inlineBlock mm_scorebar_wrapper">
                    {% if stone.score is defined %}
                        {% set score    = 100 - stone.score %}
                                {% if score == 100 %} {% set score = 95 %} {% endif %} {# trick #}
                        <div class="inlineBlock mm_scorebar" 
                             style="
                             background: -webkit-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{score}}%, #F88017 {{score}}%, #F88017 100%);
                             background: -moz-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{score}}%, #F88017 {{score}}%, #F88017 100%);
                             background: -ms-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{score}}%, #F88017 {{score}}%, #F88017 100%);
                             background: -o-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{score}}%, #F88017 {{score}}%, #F88017 100%);
                             background: linear-gradient(top, #F1DBBD 0%, #F1DBBD {{score}}%, #F88017 {{score}}%, #F88017 100%);
                             " 
                             title="score : {{stone.score|default(0)}}%"></div>
                    {% else %}
                        <div class="inlineBlock mm_scorebar mm_no_score"
                             title="Aucun score. Ce module est consultatif."></div>
                    {% endif %}
                        {% set progress = 100 - stone.progress %}
                                {% if progress == 100 %} {% set progress = 95 %} {% endif %} {# trick #}
                        <div class="inlineBlock mm_scorebar"
                             style="
                             background: -webkit-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{progress}}%, #db3f02 {{progress}}%, #db3f02 100%);
                             background: -moz-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{progress}}%, #db3f02 {{progress}}%, #db3f02 100%);
                             background: -ms-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{progress}}%, #db3f02 {{progress}}%, #db3f02 100%);
                             background: -o-linear-gradient(top, #F1DBBD 0%, #F1DBBD {{progress}}%, #db3f02 {{progress}}%, #db3f02 100%);
                             background: linear-gradient(top, #F1DBBD 0%, #F1DBBD {{progress}}%, #db3f02 {{progress}}%, #db3f02 100%);
                             " 
                             title="consulté : {{stone.progress|default(0)}}%"></div>
                    </div>
                </div>
            </div>
            {% endif %}
            {% endfor %}
        {% endfor %}
    </div>
</div>
    
{% if nom is sameas('Témoignages') %}
    <script>
        $(function() {
            $('#mm_column_film').hide();
            var tem_view = false;
            $('[data-cid]').click(function() {
                var lpId = $(this).attr('data-lpid');
                var videoId = $(this).attr('data-videoid');
                var cId = $(this).attr('data-cid');
                
                // mark as seen
                $.ajax({
                    type: 'POST',
                    url:  "{{web_path}}" + 'main/formation/upload.php',
                    data: {c_id: cId, video_id: lpId}
                });
                
                if (!tem_view) {
                    // switch to view temoignages
                    tem_view = true;
                    // $('#mm_column_film').show();
                    $('#mm_column_film').css('display', 'inline-block');
                    $('#mm_column_formation[data-nom=Themes]').hide();
                    $('#mm_column_formation[data-nom=\'Cas Pratiques\']').hide();
                    $('.mm_course_topright').hide();
                }
                // load in screen
                var width = $('#mm_column_film .mm_tchat_display').width() - 8;
                var height = $('#mm_column_film .mm_tchat_display').height() - 8;
                $('#mm_column_film #mm_tchat').html(
                    '<iframe src="http://player.vimeo.com/video/' + videoId + '?autoplay=1"' + 
                    'width="' + width + '" ' + 
                    'height="' + height + '" frameborder="0" ' + 
                    'webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
                );
            });
        });
    </script>
{% endif %}default/layout/mm_course_main.tpl000064400000004753152004101310013217 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

    <div class="span12">
        
        <div class="mm_course_topright">
            <div class="mm_biblio">
                <a href="{{web_path}}main/formation/biblio.php">Références Scientifiques</a>
            </div>  
            <div class="mm_video_intro cliquable">
                <a>Introduction</a>
            </div>
        </div>
       
        <div id="video_pop_up" title="Introduction">
            <iframe 
                width="850"
                height="550" frameborder="0"
                webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
        </div>
        
        {# COLUMNS #}
        {% include "default/layout/mm_course_building.tpl" with {'tab' : tab_0, 'nom' : 'Themes', 'web_path' : web_path} %}
        {% include "default/layout/mm_course_building.tpl" with {'tab' : tab_1, 'nom' : 'Cas Pratiques', 'web_path' : web_path} %}
        {% include "default/layout/mm_course_building.tpl" with {'tab' : tab_2, 'nom' : 'Témoignages', 'web_path' : web_path} %}

        <div class="mm_column" id="mm_column_film">
            <div class="mm_building_wrapper">
                <div class="mm_building_trick"></div>
                <div class="mm_building" style="width: 98%">
                    <div class="mm_flour">
                        <nav class="mm_tabs" style="width: 100%">
                            <a class="nohover" style="width: 90%">Video</a>
                            <a style="width: 9%; float: right; cursor: pointer;" class="cliquable" id="exit" data-href="{{web_path}}main/formation/index.php">Exit</a>
                        </nav>
                    </div>
                    <div class="mm_tchat_display mm_building_block mm_flour" id="mm_tchat"></div>
                </div>
            </div>
        </div>
                    
    </div>
                        
    <script>
        $( "#video_pop_up" ).dialog({
            autoOpen: false,
            height: 700,
            width: 900,
            modal: true,
            buttons: {
                "Fermer": function() {
                    $(this).find('iframe').attr('src', '');
                    $(this).dialog('close');
                }
            }
        });
        $(".mm_video_intro" ).click(function() {
            $('#video_pop_up iframe').attr('src', "http://player.vimeo.com/video/{{video_intro.ref}}?autoplay=1");
            $("#video_pop_up").dialog("open");
        });
    </script>

{% endblock %}default/layout/mm_course_upload.tpl000064400000003435152004101310013553 0ustar00
{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

{% if upload_attempt %}
    {% if error is not defined %}
        <div><p class="mm_info">Upload réussi!</p></div>
    {% else %}
        <script>alert({{error}});</script>
    {% endif %}
{% endif %}


<div class="span12"> 
    <div class="mm_fullscreen_frame">
        <div>
            <form method="POST" enctype="multipart/form-data">
                <p>
                    {% if type is sameas('turbo') %}
                        <label>Nom du turbomédia : </label>
                        <input type="text" name="turboname"/>
                        <br/>
                        <br/>
                        <input type="file" name="turbo"/>
                        <br/>
                        <br/>
                        <input type="submit" value="Envoyer mon package"/>
                        <br/>
                        <em>Important : n'envoyer que des dossiers compatibles.</em>
                        <br/>
                        <em>Dossier zippé, pas trop lourd, avec seulement du jpg ou du png (et pas un peu des deux). Les fichiers doivent être nommés 1, 2, 3 ... n. </em>
                        <em>Exemple : {1.png, 2.png, 3.png, [...], 58.png}</em>
                    {% else %}
                        <label style="width: 150px">Nom de la video : </label>
                        <input type="text" name="videoname"/>
                        <br/>
                        <label style="width: 150px">Id du lien : </label>
                        <input type="text" name="videoid"/>
                        <br/>
                        <input type="submit" value="Créer la vidéo"/>
                    {% endif %}
                </p>
            </form>
        </div>
    </div>

</div>

{% endblock %}

default/layout/mm_datepicker.tpl000064400000000511152004101310013012 0ustar00 
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>






<!-- Datepicker's script -->

Date <input type="text" id="datepicker">

<script>
    $.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );
    $("#datepicker").datepicker();
</script>default/layout/mm_errors.tpl000064400000000220152004101310012210 0ustar00
{# ERRORS #}
{% if errors %}
<div>
{% for error in errors %}
    <div class="mm_error"><p>{{error}}</p></div>
{% endfor %}
</div>
{% endif %}

default/layout/mm_form_create.tpl000064400000004175152004101310013177 0ustar00    
    
    <div>
        <h3>Créez un nouveau formulaire : </h3>
        <form id="mm_formulaire_create_form" method="GET" action="#">
            <table class="mm_table">
                <tr>
                    <td>Titre : </td>
                    <td width="80%"><input type="text" name="title"></input></td>
                </tr>
                <tr class="mm_question">
                    <td>Q<nb>i</nb> : </td>
                    <td><input type="text" name="i"></input></td>
                </tr>
            </table>
            <button id="mm_add_question">Nouvelle question</button>
            <button id="mm_del_question">Supprimer question</button>
            <button type="submit">Créer le formulaire</button>
        </form>
    </div>

    <script language="javascript" type="text/javascript">
        $(function() {
            console.log("Entrée dans le test de formulaire");
            $(".mm_question nb").each(function(index) {
                $(this).html(index+1);
            });
            $(".mm_question input").each(function(index) {
                $(this).attr("name", index+1);
            });

            $("button#mm_add_question").click(function(event) {
                event.preventDefault();
                var new_question_nb = parseInt($("form#mm_formulaire_create_form tr.mm_question").last().find("td>input").attr("name")) + 1;
                console.log("New question nb : " + new_question_nb);
                $("form#mm_formulaire_create_form tr.mm_question").last().after(
                    "<tr class=\"mm_question\"><td>Q<nb>" + 
                    new_question_nb + 
                    "</nb> : </td><td><input type=\"text\" name=" + 
                    new_question_nb + 
                    "></input></td></tr>");
            });
            $("button#mm_del_question").click(function(event) {
                event.preventDefault();
                if ($("form#mm_formulaire_create_form tr.mm_question").size() > 1) {
                    $("form#mm_formulaire_create_form tr.mm_question").last().detach();
                }
            });
            $("button").button();
        });
    </script>default/layout/mm_form_list.tpl000064400000005072152004101310012704 0ustar00    
    {% if forms is defined %}
    <div>
        <h3>Liste des formulaires : </h3>
        <div style="max-height: 200px; overflow-y: auto">
                <table class="data_table" id="mm_formulaire_liste">
                    <tr>
                        <th width="10%">ID</th>
                        <th>Titre</th>
                        <th width="20%">Action</th>
                    </tr>
                    {% for form in forms %}
                    <tr class="form_info" data-id="{{form.id}}">
                        <td>{{form.id}}</td>
                        <td>{{form.title}}</td>
                        <td><a id="delete_form" href="?action=delete&id={{form.id}}">delete</a></td>
                    </tr>
                    <tr class="details" data-id="{{form.id}}">
                        <td></td>
                        <td>
                            {% for question in form.questions %}
                                <b>--- </b>{{question.question}}<br/>
                            {% endfor %}
                        </td>
                        <td></td>
                    </tr>
                    {% endfor %}
                </table>
            </form>
        </div>
    </div>
    {% else %}
    <p>No form found (Twigg variable 'form')</p>
    {% endif %}
    
    <script>
        $('a#delete_form').click(function() {
            return window.confirm('Supprimer ce formulaire le détruira pour tous les utilisateurs, ' + 
            'tous les tuteurs et occasionnera la perte définitive de toutes les réponses qu\'il contient.' + 
            ' Le supprimer tout de même?');
        });
        $("tr.details").each(function() {
            $(this).hide();
        });
        $("tr.form_info").each(function() {
            var form_id = $(this).attr('data-id');
            $(this).click(function() {
                console.log("toggle : tr.details[data-id=" + form_id + "]");
                $("tr.details[data-id=" + form_id + "]").toggle();
            });
        });
        
        /*
        * 
        $("#mm_formulaire_liste").selectable({
            filter: "#form_info",
            selected: function() {
                var id = $(".ui-selected").attr('data-id');
                console.log("hey " + id);
                $(this).find("#details[data-id=" + id + "]").show();
            },
            unselecting: function() {
                $(this).find("#details").hide();
            },
            create: function() {
                $(this).find("#details").hide();
            }
        });
        * 
         */
    </script>
    default/layout/mm_graph_eval.tpl000064400000003436152004101310013020 0ustar00
<div class=span12>
    <p>{{message}}</p>
    <div id="container"></div>
</div>

<script>
    $(function () {
        $('#container').highcharts({
            credits: {
                text: 'Miss Mandarine',
                href: '#'
            },
            chart: {
                type: 'spline'
            },
            title: {
                text: 'Impressions de {{name}}'
            },
            subtitle: {
                text: 'Coopération Entrepreneuriale'
            },
            xAxis: {
                type: 'datetime',
                dateTimeLabelFormats: { // don't display the dummy year
                    month: '%e. %b',
                    year: '%b'
                }
            },
            yAxis: {
                title: {
                    text: 'Impressions (1 à 5)'
                },
                min: 0
            },
            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        Highcharts.dateFormat('%M', this.x) +': '+ this.y +' m';
                }
            },
            
            series: [
                    {% for question_list_i in evals %}
                    {% if question_list_i is not empty %}
                        {
                            name: "{{question_list_i[0].question}}", 
                            data: [
                                {% for eval_i in question_list_i %}
                                [Date.UTC({{eval_i.year}}, {{eval_i.month}}, {{eval_i.day}}, {{eval_i.hour}}, {{eval_i.minute}}), {{eval_i.evaluation}}],
                                {% endfor %}
                            ]
                        },
                    {% endif %}{% endfor %}
                    ]
        });
    });
</script>
default/layout/mm_main.tpl000064400000002216152004101310011627 0ustar00{% extends "default/layout/main.tpl" %}

{% block body %}

    <div class="span12">
        
        {# TABS #}
        <div class="mm_tabs">
            <div style="display:inline-block; width: 80%; vertical-align: top;">
            {% include "default/layout/mm_tabs.tpl" %}
            </div>

            {% if new_course_link is defined %}
            <div style="display:inline-block; width: 19%; vertical-align: top;">
                <a href="{{new_course_link}}"><h4 style="text-align: right">Nouveau Cours</h4></a>
            </div>
            {% endif %}
            
        </div>
        
        {# COLUMNS #}
        
        {% if two_column == true %}
        
        <div class="mm_column" id="mm_column_left">
            {% include "default/layout/mm_paving_left.tpl" %}
        </div>
        <div class="mm_column" id="mm_column_right">
            {% include "default/layout/mm_paving_right.tpl" %}
        </div>
        
        {% else %}
        
        <div class="mm_column" id="mm_column_unique">
            {% include "default/layout/mm_paving_right.tpl" %}
        </div>
        
        {% endif %}
    </div>

{% endblock %}default/layout/mm_main_layout.tpl000064400000017624152004101310013235 0ustar00{% block header %}
    <head>
        {% include "default/layout/head.tpl" %}
    </head>
    <body>
        <script language="javascript" type="text/javascript">
            $(function() {
                $(".cliquable").click(function() {
                    cliquable_click($(this));
                });
                // $(".mm_building_trick").height($(this).parent().height());
                $( "#profil_form" ).dialog({
                    autoOpen: false,
                    height: 700,
                    width: 900,
                    modal: true,
                    closeOnEscape: false,
                    buttons: {
                        "Mettre à jour": function() {
							if(($('#profil_form>form').find('[name=prenom]').attr('value').length == 0)||($('#profil_form>form').find('[name=nom]').attr('value').length == 0)||($('#profil_form>form').find('[name=email]').attr('value').length == 0)||($('#profil_form>form').find('[name=q1]').attr('value').length == 0)||($('#profil_form>form').find('[name=q2]').attr('value').length == 0)||($('#profil_form>form').find('[name=law]').attr('checked')!='checked')){
								alert('Vous devez compléter votre profil avant d\'accéder à la formation');
								return false;
							}
							if(($('#profil_form>form').find('[name=prenom]').attr('value') == "firstName")){
								alert(' Vous ne pouvez pas choisir ce prénom');
								return false;
							}
							if(($('#profil_form>form').find('[name=nom]').attr('value') == "lastName")){
								alert(' Vous ne pouvez pas choisir ce nom');
								return false;
							}
                            updateProfile($(this), $('#profil_form>form'));
                            {% if profil_ok is defined and not profil_ok %}
                                $( "#video_pop_up" ).dialog({
                                    autoOpen: false,
                                    height: 700,
                                    width: 900,
                                    modal: true,
                                    buttons: {
                                        "Fermer": function() {
                                            $(this).find('iframe').attr('src', '');
                                            $(this).dialog('close');
                                            $( "#profil_form" ).dialog('Mettre à jour');
                                        }
                                    }
                                });
                                $('#video_pop_up iframe').attr('src', "http://player.vimeo.com/video/{{video_intro.ref}}?autoplay=1");
                                $("#video_pop_up").dialog("open");
                            {% endif %}
                        }
                    }
                });
                {% if profil_ok is defined and not profil_ok %}
                    profilModalOpen("{{web_path}}");
                {% endif %}
                $("#profil_form_pop").click(function() {
                    {% if profil_ok is defined %}
                    profilModalOpen("{{web_path}}");
                    {% else %}
                        {% if my_subrole is sameas('admin') %}
                            alert('Pas de configuration de profil pour l\'administrateur.');
                        {% else %}
                            alert('Erreur. Veuillez contacter l\'administrateur.');
                        {% endif %}
                    {% endif %}
                });
                $(".mm_rating").raty(
                    {
                        hints: ['sans intérêt', 'moyen', 'correct', 'bon', 'très bon'],
                        path: "{{web_path}}main/inc/lib/javascript/raty/lib/img",
                        score: function() {
                            return $(this).attr('data-rating');
                        },
                        click: function(score, event) {
                            $.ajax({
                                type: 'POST', 
                                url:  '{{web_path}}main/formation/rating.php', 
                                data: {
                                    rating_action: 'create',
                                    c_id:   $(this).attr('data-c_id'),
                                    lp_id:  $(this).attr('data-lp_id'),
                                    user_id: '{{my_user_id}}',
                                    rating: score
                                },
                                success: function() {
                                    console.log('Rating updated.');
                                }
                            });
                        }
                    }    
                );
                $(".mm_rating").click(function(event) {
                    event.stopPropagation();
                    event.preventDefault();
                });
            });
        </script>
        <div id="mm_main_wrapper">
{% endblock %}

{% block nav %}
            {% if part not in ['login', 'profil'] %}
            <div id="mm_header_wrapper" class="meta">
                <nav id="mm_main_nav" class="inlineBlock">
                    <ul style="position: absolute;">
                        {% for tab in mm_menu %}
                        <li class="inlineBlock cliquable" data-href="{{tab.url}}" style="top: {{38 + (loop.index-1) * 40}}px;">
                            <a {% if part is sameas(tab.part) %} id="selected" {% endif %} href="{{tab.url}}">{{tab.title}}</a>
                            {% if my_subrole in ['tutor', 'admin'] %}
                                {% spaceless %}
                                <ul>
                                    {% for subtab in tab.tutor_tabs %}
                                    <li><a href="{{subtab.url}}">{{subtab.title}}</a></li>
                                    {% endfor %}
                                </ul>
                                {% endspaceless %}
                            {% endif %}
                        </li>
                        {% endfor %}
                    </ul>
                </nav>
                <nav id="mm_right_nav" class="inlineBlock">
                    <ul>
                        
                        {% if notifications %}
                        <li class="inlineBlock medium" style="cursor: default">
                            <a>Notifications <f style="color: orangered">({{notifications|length}})</f></a>
                            <ul class="mm_notification_wrapper">
                            {% for notif in notifications %}
                            <li style="top: {{38 + (loop.index-1) * 70}}px;" 
                                data-id="{{notif.id}}" 
                                class="cliquable" 
                                data-href="{{notif.url}}" 
                                data-action="delete_notif" 
                                data-web_path="{{web_path}}">
                                <p class="mm_notification_title">{{notif.title}}</p>
                                <p class="mm_notification_text">{{notif.text}}</p>
                            </li>
                            {% endfor %}
                            </ul>
                        </li>
                        {% endif %}
                        
                        {% include "default/layout/mm_name_li.tpl" with {'firstname' : my_user_info.firstname, 'lastname' : my_user_info.lastname} %}
                        <li class="inlineBlock cliquable mm_deco" title="Déconnexion" data-href="{{ logout_link }}">
                            <a id="logout_button" class="logout" href="{{ logout_link }}">Off</a>
                        </li>
                    </ul>
                </nav>
            </div>
            {% endif %}
{% endblock %}

            <!-- Profil modal form -->
            <div id="profil_form" title="Profil"></div>

            <div id="mm_body_wrapper">
{% block body %}

{% endblock %}
            </div>

{% block footer %}
        </div>
    </body>
{% endblock %}default/layout/mm_minimal_layout.tpl000064400000001326152004101310013727 0ustar00{% block header %}
    <head>
        {% include "default/layout/head.tpl" %}
    </head>
    <body>
        <script language="javascript" type="text/javascript">
            $(function() {
                $(".cliquable").click(function() {
                    cliquable_click($(this));
                });
                $('body').css('background', 'black');
            });
        </script>
        <div id="mm_main_wrapper">
{% endblock %}

{% block nav %}
{% endblock %}

            <!-- Profil modal form -->
            <div id="profil_form" title="Profil"></div>

            <div id="mm_body_wrapper">
{% block body %}

{% endblock %}
            </div>

{% block footer %}
        </div>
    </body>
{% endblock %}default/layout/mm_name_li.tpl000064400000000671152004101310012312 0ustar00
    {% set namelength = firstname|length + lastname|length %}
    <li class="inlineBlock medium" id="profil_form_pop">
        {% if namelength < 17 %}
        <a id="name">{{my_user_info.firstname | capitalize}} {{my_user_info.lastname | capitalize}}</a>
        {% else %}
        <a id="name">{{my_user_info.firstname | capitalize | slice(0, 1)}}. {{my_user_info.lastname | capitalize | slice(0,14)}}...</a>
        {% endif %}
    </li>default/layout/mm_paving_left.tpl000064400000001067152004101310013204 0ustar00
<div class="mm_building_wrapper mm_column" id="mm_column_left">
    <div class="mm_building_trick"></div>
    <div class="mm_building">
        <div class="mm_flour">
            {% include "default/layout/mm_tabs.tpl" %}
        </div>
        {% for stone in paving_left %}
        <div class="mm_flour small">
            <a href="?course={{stone.id}}">
                <div>
                    <h4>{{stone.title}}</h4>
                    <p>{{stone.description}}</p>
                </div>
            </a>
        </div>
        {% endfor %}
    </div>
</div>default/layout/mm_paving_right.tpl000064400000002134152004101310013363 0ustar00
<div class="mm_building_wrapper mm_column" id="mm_column_right">
    <div class="mm_building_trick"></div>
    <div class="mm_building">
        {% for stone in paving_right %}
        <div class="mm_flour big">
            <a href="{{web_path}}main/newscorm/lp_controller.php?cidReq={{course_code}}&id_session=0&gidReq=0&action=view&lp_id={{stone.id}}&isStudentView=true">
                <div class="inlineBlock" style="height: 100%; width: 89%;">
                    <h4>{{stone.title|default('Title of the module')}}</h4>
                    <p>{{stone.description|default('Description du cours')}}</p>
                </div>
                <div class="inlineBlock mm_scorebar_wrapper">
                    <div class="inlineBlock mm_scorebar score" style="height: {{stone.score|default(0)}}%;" title="score : {{stone.score|default(0)}}%"></div>
                    <div class="inlineBlock mm_scorebar content" style="height: {{stone.progress|default(0)}}%;" title="consulté : {{stone.progress|default(0)}}%"></div>
                </div>
            </a>
        </div>
        {% endfor %}
    </div>
</div>default/layout/mm_profil.tpl000064400000003525152004101310012202 0ustar00
<form action="{{web_path}}main/profil/index.php" method="POST">
    {# General #}
    <div class="mm_profil_question" style="margin-top: 15px;">
        <label class="inlineBlock small">Prénom</label>
        <input class="inlineBlock small" type="text" name="prenom" {% if profil is defined %}value="{{profil.firstname}}"{% endif %}/>
    </div>

    <div class="mm_profil_question">
        <label class="inlineBlock small">Nom</label>
        <input class="inlineBlock small" type="text" name="nom" {% if profil is defined %}value="{{profil.lastname}}"{% endif %}/>
    </div>

    {% if not profil_ok %}
    <div class="mm_profil_question">
        <label class="inlineBlock small">New Password</label>
        <input class="inlineBlock small" type="password" name="password"/>
    </div>
    {% endif %}

    <div class="mm_profil_question">
        <label class="inlineBlock small">Email</label>
        <input class="inlineBlock small" type="text" name="email" {% if profil is defined %}value="{{profil.email}}"{% endif %}/>
    </div>

    {% set cols = 90 %}
    {% if q1 is defined %}
    <div class="mm_profil_question wide">
        <label class="line">{{q1}}</label>
        <textarea rows="4" cols="{{cols}}" name="q1">{% if profil is defined %}{{profil.q1}}{% endif %}</textarea>
    </div>
    {% endif %}

    {% if q2 is defined %}
    <div class="mm_profil_question wide">
        <label class="line">{{q2}}</label>
        <textarea rows="4" cols="{{cols}}" name="q2">{% if profil is defined %}{{profil.q2}}{% endif %}</textarea>
    </div>
    {% endif %}
    
    <br/>
    <input type="checkbox" name="law" {% if profil_ok is defined and profil_ok %}checked{% endif %}/>
    <label>J'accepte les <a href="{{web_path}}main/administration/conditions_utilisation.php" target="_blank">conditions d'utilisation</a> du service Miss Mandarine.</label>
</form>default/layout/mm_rh.tpl000064400000014345152004101310011322 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}
{% block body %}
    <div class=span12>
        
        <div style="width: 55%; max-height: 500px; overflow-y: auto; display: inline-block; vertical-align: top;">
            <table class="mm_table" style="width: 85%">
                <tr>
                    <th>FirstName</th>
                    <th>LastName</th>
                    <th>Vus</th>
                    <th>Score</th>
                    <th>Impressions</th>
                    <th>Contact Tuteur</th>
                </tr>
                {% for hp in my_hps %}
                <tr>
                    <td>{{hp.firstname | capitalize | slice(0, 15)}}</td>
                    <td>{{hp.lastname | capitalize | slice(0, 15)}}</td>
                    <td>{{hp.displayed | capitalize}}/100</td>
                    <td>{{hp.score | capitalize}}/100</td>
                    <td class="impressions" data-id="{{hp.user_id}}" style="cursor: pointer">Impressions</td>
                    <td class="cliquable" data-href="mailto:{{hp.tutor.email | default('bdescombes@mandarinecodi.com')}}?subject=Miss Mandarine : RH demande de renseignement ({{hp.company}})">{{hp.tutor.name|default('introuvable')|capitalize}}</td>
                </tr>
                {% endfor %}
            </table>

            <!-- Profil modal form -->
            <div id="eval_form" title="Impressions"></div>
        </div>
            
        <script>
            $(function() {
                $('#chart_container').highcharts({
                    credits: {
                        text: 'Miss Mandarine',
                        href: '#'
                    },
                    chart: {
                        plotBackgroundColor: null,
                        plotBorderWidth: null,
                        plotShadow: false
                    },
                    title: {
                        text: "<b>Avancement</b> des apprenants dans le parcours de formation"
                    },
                    tooltip: {
                        pointFormat: 'Part des apprenants ayant un {series.name} "{point.name}" : <b>{point.percentage:.1f}%</b>'
                    },
                    plotOptions: {
                        pie: {
                            allowPointSelect: true,
                            cursor: 'pointer',
                            dataLabels: {
                                enabled: true,
                                color: '#000000',
                                connectorColor: '#000000',
                                format: '<b>{point.name}</b>: {point.percentage:.1f} %'
                            }
                        }
                    },
                    series: [{
                        type: 'pie',
                        name: 'Avancement',
                        data: [
                            ['Absent',       {{stats.displayed[0] | default(0)}}],
                            ['Débutant',     {{stats.displayed[1] | default(0)}}],
                            ['En Formation', {{stats.displayed[2] | default(0)}}],
                            ['Expérimenté',  {{stats.displayed[3] | default(0)}}],
                            ['Expert',       {{stats.displayed[4] | default(0)}}],
                        ]
                    }],
                });
                $('#chart_container_2').highcharts({
                    credits: {
                        text: 'Miss Mandarine',
                        href: '#'
                    },
                    chart: {
                        plotBackgroundColor: null,
                        plotBorderWidth: null,
                        plotShadow: false
                    },
                    title: {
                        text: "<b>Score</b> des apprenants dans le parcours de formation"
                    },
                    tooltip: {
                        pointFormat: 'Part des apprenants ayant un {series.name} "{point.name}" : <b>{point.percentage:.1f}%</b>'
                    },
                    plotOptions: {
                        pie: {
                            allowPointSelect: true,
                            cursor: 'pointer',
                            dataLabels: {
                                enabled: true,
                                color: '#000000',
                                connectorColor: '#000000',
                                format: '<b>{point.name}</b>: {point.percentage:.1f} %'
                            }
                        }
                    },
                    series: [{
                        type: 'pie',
                        name: 'Score',
                        data: [
                            ['Absent',       {{stats.score[0] | default(0)}}],
                            ['Débutant',     {{stats.score[1] | default(0)}}],
                            ['En Formation', {{stats.score[2] | default(0)}}],
                            ['Expérimenté',  {{stats.score[3] | default(0)}}],
                            ['Expert',       {{stats.score[4] | default(0)}}],
                        ]
                    }]
                });
                $( "#eval_form" ).dialog({
                    autoOpen: false,
                    height: 550,
                    width: 650,
                    modal: true,
                    buttons: {
                        "Cancel": function() {
                            $(this).dialog("close");
                        }
                    }
                });
                $(".impressions").click(function() {
                    $.ajax({
                        type: 'GET', 
                        url: '../rh/eval.php', 
                        data: {id: $(this).attr('data-id')}, 
                        success: function(msg) {
                            $( "#eval_form" ).html(msg);
                            $( "#eval_form" ).dialog("open");
                        }
                    });
                });
            });
        </script>
            
        <div style="width: 43%; height: 100%; overflow-y: auto; display: inline-block; vertical-align: top;">
            <div id="chart_container" style="margin-bottom: 12px;"></div>
            <div id="chart_container_2"></div>
        </div>            
        
    </div>
{% endblock %}default/layout/mm_tabs.tpl000064400000000345152004101310011635 0ustar00{% spaceless %}
<nav class="mm_tabs">
    {% for tab in tabs %}
    <a href="{{web_path}}main/{{part|default('formation')}}/index.php{{tab.href}}" class="{{tab.class}}">{{tab.label}}</a>
    {% endfor %}
</nav>
{% endspaceless %}default/layout/mm_test.tpl000064400000001720152004101310011661 0ustar00{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

    <div class="span12">
        
        <!-- basic exemple -->
        <div class="exemple">

           <!-- in this exemple, 12 is the average and 1 is the id of the line to update in DB -->
           <div class="raty"></div>
           
           <p>
               create : {{create}},
               avg : {{avg}},
               read : {{read}}
           </p>

        </div>
        
    </div>

    <script type="text/javascript">
        $(function() {
            $(".raty").raty(
                {
                    hints: ['sans intérêt', 'moyen', 'correct', 'bon', 'très bon'],
                    path: "{{web_path}}main/inc/lib/javascript/raty/lib/img",
                    click: function(score, event) {
                        console.log('Hit the road jack. Score = ' + score);
                    }
                }    
            );
        });
    </script>

{% endblock %}default/layout/mm_test_container.tpl000064400000000142152004101310013720 0ustar00
<div>
    <div><p>Container</p></div>
    {% include "default/layout/mm_test_items.tpl" %}
</div>default/layout/mm_turbomedia.tpl000064400000010036152004101310013035 0ustar00{% extends "default/layout/mm_minimal_layout.tpl" %}

{% block body %}

    <div class="span12">
        {% if turbomedia.length > 0 %}
        
            <script>
                $(function() {
                    var current_item = 1;
                    setItem(current_item);
                    
                    $(document).keydown(function(e){
                        switch(e.which) {
                            case 37: // left
                            case 38: // up
                                e.preventDefault();
                                if (current_item > 1) current_item--;
                                setItem(current_item);
                                break;
                            case 39: // right
                            case 40: // down
                                e.preventDefault();
                                if (current_item <= {{turbomedia.length}}) current_item++;
                                setItem(current_item);
                                break;
                        }
                    });
                    
                    $('#exit').button({
                        icons: {primary: "ui-icon-closethick"},
                        text: false
                    });
                    
                    $('button#prec').button({
                        icons: {primary:  "ui-icon-circle-triangle-w"},
                        text: false
                    }).click(function() {
                        if (current_item > 1) current_item--;
                        setItem(current_item);
                    });

                    $('button#next').button({
                        icons: {primary:  "ui-icon-circle-triangle-e"},
                        text: false
                    }).click(function() {
                        if (current_item <= {{turbomedia.length}}) current_item++;
                        setItem(current_item);
                    });
                    
                    $('#screen').click(function() {
                        if (current_item <= {{turbomedia.length}}) current_item++;
                        setItem(current_item);
                    });

                });

                function setItem (nb) {
                    $('#screen>img').attr('src', "{{web_path}}main/formation/turbomedia/{{turbomedia.name}}/" + nb + ".{{turbomedia.ext}}");
                    // Anticipate image downloading by preloading image n+1 while displaying image n
                    if (nb < {{turbomedia.length}}) $('#preload>img').attr('src', "{{web_path}}main/formation/turbomedia/{{turbomedia.name}}/" + (nb + 1) + ".{{turbomedia.ext}}");
                    
                    // Tell the controller that item X has been seen
                    // He will modify the DB accordingly so that the user has a valid progress
                    $.ajax({
                        type: 'POST', 
                        url:  "{{web_path}}main/formation/upload.php", 
                        data: {c_id: "{{turbomedia.c_id}}", lp_id: "{{turbomedia.lp_id}}", item_id: nb, item_max: "{{turbomedia.length}}"},
                        success: function(msg) {
                            console.log('Succes de la requete de lecture du turbomedia. Msg : (' + msg + ')');
                        }
                    });
                }
            </script>

            <div id="preload" style="display: none">
                <img/>
            </div>
            
            <div id="turbomedia">
                <div id="menu">
                    <button id="exit" class="cliquable" data-href="{{web_path}}main/formation/index.php"></button>
                </div>
                
                <div id="screen">
                    <img/>
                </div>

                <div id="actions">
                    <button id="prec"></button>
                    <button id="next"></button>
                </div>
            </div>
                
                
        {% else %}
            <p>Nothing to display</p>
        {% endif %}
        
    </div>

{% endblock %}default/layout/mm_tutor_coop_choice.tpl000064400000002032152004101310014406 0ustar00
{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

<div class="span12"> 
    <div class="mm_fullscreen_frame">
        <div>
            {% if is_tutor %}
            <table class="mm_table">
                <tr>
                    <th>id</th>
                    <th>type</th>
                    <th>hp</th>
                    <th>su</th>
                    <th>Sélectionner</th>
                </tr>
            {% for coop in coops %}
                <tr>
                    <td>{{coop.couple_id}}</td>
                    <td>{{coop.couple_type}}</td>
                    <td>{{coop.hp_info.firstname}} {{coop.hp_info.lastname}}</td>
                    <td>{{coop.su_info.firstname}} {{coop.su_info.lastname}}</td>
                    <td class="cliquable" data-href="../cooperation/index.php?action=select&id={{coop.couple_id}}&type={{coop.couple_type}}">GO</td>
                </tr>            
            {% endfor %}
            </table>
            {% endif %}
        </div>
    </div>

</div>

{% endblock %}

default/layout/mm_tutor_student_choice.tpl000064400000002442152004101310015141 0ustar00
{% extends "default/layout/mm_main_layout.tpl" %}

{% block body %}

<div class="span12">
    <div class="mm_fullscreen_frame">
        <div>
            <h3>Liste des étudiants : </h3>
            <div>
                {% if is_tutor %}
                <table class="mm_table">
                    <tr>
                        <th>ID</th>
                        <th>Nom</th>
                        <th>Role</th>
                        <th>Sélectionner</th>
                    </tr>
                {% for student in students %}
                    <tr>
                        <td>{{student.user_id}}</td>
                        <td>{{student.name}}</td>
                        <td>{{student.user_type}}</td>
                        <td class="cliquable" data-href="../tuteur/index.php?action=select&id={{student.user_id}}">GO</td>
                    </tr>            
                {% endfor %}
                </table>
                {% endif %}
            </div>
        </div>
    </div>

    <div class="mm_fullscreen_frame">
        {% include "default/layout/mm_form_list.tpl" %}
    </div>

    <div class="mm_fullscreen_frame">
        {% if display_form_create %}
            {% include "default/layout/mm_form_create.tpl" %}
        {% endif %}
       
    </div>
</div>

{% endblock %}

default/layout/no_layout.tpl000064400000001126152004101310012222 0ustar00<!DOCTYPE html>
<!--[if lt IE 7]> <html lang="{{document_language}}" class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>    <html lang="{{document_language}}" class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html lang="{{document_language}}" class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--><html lang="{{document_language}}" class="no-js"> <!--<![endif]-->
<head>
{% include "default/layout/head.tpl" %}
</head>
<body dir="{{text_direction}}" class="{{section_name}}">
{% block name%}
{% endblock %}
{% block body %}
    {{ content }}
{% endblock %}
</body>
</html>default/layout/page_body.tpl000064400000000553152004101310012145 0ustar00{#  Actions  #}
{% if actions != '' %}
    <div class="actions">
        {{ actions }}
    </div>
{% endif %}

{#  Page header #}
{% if header != '' %}    
    <div class="page-header">
        <h1>{{ header }}</h1>
    </div>
{% endif %}

{#  Show messages #}
{% if message != '' %}    
    <section id="messages">
        {{ message}}
    </section>
{% endif %}default/layout/show_footer.tpl000064400000001324152004101310012547 0ustar00{#
    show_header and show_footer templates are only called when using the Display::display_header and Display::display_footer
    for backward compatibility we suppose that the default layout is one column which means using a div with class span12
 #}
{% if show_header == true %}
    </section>
</div>
{% endif %}

{# Plugin bottom  #}   
{% if plugin_content_bottom is not null %}
    <div id="plugin_content_bottom" class="span12">
        {{ plugin_content_bottom}}
    </div>
{% endif %}

{% if show_footer == true %}
        </div> <!-- end of #row" -->
    </div> <!-- end of #main" -->
    <div class="push"></div>
</div> <!-- end of #wrapper section -->
{% endif %}

{% include "default/layout/main_footer.tpl" %}default/layout/show_header.tpl000064400000001214152004101310012477 0ustar00{% include "default/layout/main_header.tpl" %}
{#
    show_header and show_footer templates are only called when using the Display::display_header and Display::display_footer
    for backward compatibility we suppose that the default layout is one column which means using a div with class span12
#}

{% if show_header == true %}
        {% if plugin_content_top is not null %}
            <div id="plugin_content_top" class="span12">
                {{ plugin_content_top }}
            </div>
        {% endif %}
        <div class="span12">
            {% include "default/layout/page_body.tpl" %}
            <section id="main_content">
{% endif %}default/layout/sniff.tpl000064400000013331152004101310011317 0ustar00{% raw %}
<script LANGUAGE="JavaScript">
var nav ="";
var screen_size_w;
var screen_size_h;
var java="";
var type_mimetypes="";
var suffixes_mimetypes="";
var list_plugins="";
var check_some_activex="";
var check_some_plugins="";
var java_sun_ver="";

<!-- check Microsoft Internet Explorer -->
if (navigator.userAgent.indexOf("MSIE") != -1) { var nav="ie";}

<!-- check Screen Size -->
screen_size_w=screen.width;
screen_size_h=screen.height;

<!-- list mimetypes types, suffixes and plugins (no for IE) -->
if (nav!="ie"){
        
        if (navigator.mimeTypes && navigator.mimeTypes.length > 0) {
        
                for (i=0; i < navigator.mimeTypes.length; i++) {
                        type_mimetypes=type_mimetypes+" "+navigator.mimeTypes[i].type;
                        suffixes_mimetypes=suffixes_mimetypes+" "+navigator.mimeTypes[i].suffixes;
                        if (navigator.mimeTypes[i].enabledPlugin!=null) {
                                list_plugins=list_plugins+" "+navigator.mimeTypes[i].enabledPlugin.name;
                        }               
                }
        }
}
<!-- check some activex for IE -->
if (nav=="ie"){
        //TODO:check wmediaplayer are too aggressive. Then we can assume that if there Windows, there Wmediaplayer?
        
        var check_some_activex = 
        DetectActiveXObject("ShockwaveFlash.ShockwaveFlash.1", "flash_yes")+
        DetectActiveXObject("QuickTime.QTElementBehavior", "quicktime_yes")+
        //DetectActiveXObject("MediaPlayer.MediaPlayer.1","wmediaplayer_yes")+
        DetectActiveXObject("acroPDF.PDF.1","acrobatreader_yes");
        
        function DetectActiveXObject(ObjectName, name) { 
                result = false;
                        document.write('<SCRIPT LANGUAGE=VBScript\> \n');
                        document.write('on error resume next \n');
                        document.write('result = IsObject(CreateObject("' + ObjectName + '")) \n');
                        document.write('</SCRIPT\> \n');
                if (result) return name+' , '; else return '';
        }
}
<!-- check some plugins for not IE -->
if (nav!="ie"){

        if (list_plugins.indexOf("Shockwave Flash")!=-1){
                check_some_plugins=check_some_plugins+', flash_yes';
        }
        if (list_plugins.indexOf("QuickTime")!=-1){
                check_some_plugins=check_some_plugins+', quicktime_yes';
        }
        if (list_plugins.indexOf("Windows Media Player")!=-1){
                check_some_plugins=check_some_plugins+', wmediaplayer_yes';
        }
        if (list_plugins.indexOf("Adobe Acrobat")!=-1){
                check_some_plugins=check_some_plugins+',acrobatreader_yes';
        }
}
<!-- java -->
if(navigator.javaEnabled()==true){java="java_yes";}else{java="java_no";}

<!-- check java Sun ver -->
//for not IE
if (nav!="ie"){
        if (navigator.mimeTypes["application/x-java-applet"]){ java_sun_ver="javasun_yes";}
        if (navigator.mimeTypes["application/x-java-applet;jpi-version=1.6.0_24"]){ java_sun_ver=java_sun_ver+" , javasun_ver_1.6_24_yes"; }//This java version 1.6.0_24 is problematic, the user should be updated

}
//for IE
if (nav=="ie"){
        //1.5->end nov 2009
        //TODO:extract minor version
        var java_sun_ver =
        DetectActiveXObject("JavaWebStart.isInstalled","javasun_yes")+
        DetectActiveXObject("JavaWebStart.isInstalled.1.4.2.0","javasun_ver_1.4_yes")+
        DetectActiveXObject("JavaWebStart.isInstalled.1.5.0.0","javasun_ver_1.5_yes")+
        DetectActiveXObject("JavaWebStart.isInstalled.1.6.0.0","javasun_ver_1.6_yes")+
        DetectActiveXObject("JavaWebStart.isInstalled.1.7.0.0","javasun_ver_1.7_yes");
        
        function DetectActiveXObject(ObjectName, name) { 
                result = false;
                        document.write('<SCRIPT LANGUAGE=VBScript\> \n');
                        document.write('on error resume next \n');
                        document.write('result = IsObject(CreateObject("' + ObjectName + '")) \n');
                        document.write('</SCRIPT\> \n');
                if (result) return name+' , '; else return '';
        }
}

<!-- Send to server -->
function sendSniff(){
        document.forms.sniff_nav_form.sniff_navigator.value="checked";
        document.forms.sniff_nav_form.sniff_navigator_screen_size_w.value=screen_size_w;
        document.forms.sniff_nav_form.sniff_navigator_screen_size_h.value=screen_size_h;
        document.forms.sniff_nav_form.sniff_navigator_type_mimetypes.value=type_mimetypes;
        document.forms.sniff_nav_form.sniff_navigator_suffixes_mimetypes.value=suffixes_mimetypes;
        document.forms.sniff_nav_form.sniff_navigator_list_plugins.value=list_plugins;
        document.forms.sniff_nav_form.sniff_navigator_check_some_activex.value=check_some_activex;
        document.forms.sniff_nav_form.sniff_navigator_check_some_plugins.value=check_some_plugins;
        document.forms.sniff_nav_form.sniff_navigator_java.value=java;
        document.forms.sniff_nav_form.sniff_navigator_java_sun_ver.value=java_sun_ver;
        document.sniff_nav_form.submit(); 
}
</script>
{% endraw %}

<form name="sniff_nav_form" method="POST">
<input type="hidden" name="sniff_navigator">
<input type="hidden" name="sniff_navigator_screen_size_w">
<input type="hidden" name="sniff_navigator_screen_size_h">
<input type="hidden" name="sniff_navigator_type_mimetypes">
<input type="hidden" name="sniff_navigator_suffixes_mimetypes">
<input type="hidden" name="sniff_navigator_list_plugins">
<input type="hidden" name="sniff_navigator_check_some_activex">
<input type="hidden" name="sniff_navigator_check_some_plugins">
<input type="hidden" name="sniff_navigator_java">
<input type="hidden" name="sniff_navigator_java_sun_ver">
</form>
{#
	<script>
    	sendSniff();
	</script>
#}default/layout/social_layout.tpl000064400000000767152004101310013072 0ustar00{% extends "default/layout/layout_1_col.tpl" %}

{% block content %}
    <div class="row">
        <div class="span3">
            {{ social_left_content }}
            {{ social_left_menu }}
        </div>
        <div class="span9">
            <div class="row">
                <span id="message_ajax_reponse" class="span9"></span>
                {{ social_right_content}}
                <div id="display_response_id" class="span9"></div>
            </div>
        </div>
    </div>
{% endblock %}default/layout/topbar.tpl000064400000014110152004101310011475 0ustar00<!-- Topbar -->
{% if show_toolbar == 1 %}
    <div id="topbar" class="navbar navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">              
                <a class="brand" href="{{ _p.web }}">
                    {{ "siteName" | get_setting }}
                </a>

                {% if _u.logged %}
                    <div class="nav-collapse">                        
                        <ul class="nav">
                            <li class="active"><a href="{{ _p.web }}user_portal.php"> {{ "MyCourses"|get_lang }}</a></li>
                            {#
                            <li class="dropdown">
                                <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Teaching'|get_lang }}<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ _p.web_main }}create_course/add_course.php">{{ "AddCourse"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}auth/courses.php">{{ "Catalog"|get_lang }}</a></li>
                                </ul>
                            </li>
                            #}
                            <li class="dropdown">
                                <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Tracking'|get_lang }}<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ _p.web_main }}mySpace/">{{ "CoursesReporting"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}mySpace/index.php?view=admin">{{ "AdminReports"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}tracking/exams.php">{{ "ExamsReporting"|get_lang }}</a></li>
                                    <li class="divider"></li>
                                    <li><a href="{{ _p.web_main }}dashboard/">{{ "Dashboard"|get_lang }}</a></li>
                                </ul>
                            </li>
                            {% if _u.is_admin == 1 %}
                            <li class="dropdown">
                                <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{'Administration'|get_lang }}<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ _p.web_main }}admin/">{{ "Home"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/user_list.php">{{ "UserList"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/course_list.php">{{ "CourseList"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/session_list.php">{{ "SessionList"|get_lang }}</a></li>
                                    <li class="divider"></li>
                                    <li><a href="{{ _p.web_main }}admin/settings.php">{{ "Settings"|get_lang }}</a></li>
                                    <li class="divider"></li>
                                    <li><a href="{{ _p.web_main }}admin/settings.php?category=Plugins">{{ "Plugins"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/settings.php?category=Regions">{{ "Regions"|get_lang }}</a></li>
                                </ul>
                            </li>

                            <li class="dropdown">
                                <a class="dropdown-toggle" data-toggle="dropdown" href="#">{{ 'Add'|get_lang }}<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ _p.web_main }}admin/user_add.php">{{ "User"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/course_add.php">{{ "Course"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}admin/session_add.php">{{ "Session"|get_lang }}</a></li>
                                </ul>
                            </li>
                            {% endif %}
                        </ul>
                

                        {% if _u.is_admin == 1 %}
                        <form class="navbar-search pull-left" action="{{ _p.web_main }}admin/user_list.php" method="get">
                            <input type="text" class="search-query span2" placeholder="{{'SearchUsers'|get_lang }}" name="keyword">
                        </form>
                        {% endif %}
                
                        <ul class="nav pull-right">
                            <li><a href="{{ _p.web_main }}social/home.php"><img src="{{ _u.avatar_small }}"/></a></li>
                            <li class="dropdown">
                                <a class="dropdown-toggle" data-toggle="dropdown"  href="#">{{ _u.complete_name }}<b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    <li><a href="{{ _p.web_main }}social/home.php">{{ "Profile"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}calendar/agenda_js.php?type=personal">{{ "MyAgenda"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}messages/inbox.php">{{ "Inbox"|get_lang }}</a></li>
                                    <li><a href="{{ _p.web_main }}auth/my_progress.php">{{ "MyReporting"|get_lang }}</a></li>
                                    <!--<li class="divider"></li>
                                    <li><a href="{{ _p.web_main }}social/invitations.php">{{ "PendingInvitations"|get_lang }}</a></li> -->
                                </ul>
                            </li>
                            <li><a href="{{  _p.web }}index.php?logout=logout">{{ "Logout"|get_lang }}</a></li>
                        </ul>
                    </div> <!-- /nav collapse -->
                {% endif %}                 
            </div> <!-- /container-fluid-->
        </div><!-- /navbar-inner -->
    </div><!-- /topbar -->
    <div id="topbar_push"></div>
{% endif %}default/layout/welcome_to_course.tpl000064400000001264152004101310013731 0ustar00{{ "HelloXAsYouCanSeeYourCourseListIsEmpty"|get_lang | format(_u.complete_name) }}

{% if count_courses  == 0 %}
    {{ "PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses"|get_lang }}
{% else %}

    {% if "allow_students_to_browse_courses"|get_setting  == 'true' %}
        
        {{ "GoAheadAndBrowseOurCourseCatalogXOnceRegisteredYouWillSeeTheCourseHereX"|get_lang|format(course_catalog_link, course_list_link) }}
        
        <a class="btn btn-primary btn-large" href="{{ course_catalog_url }}">
            {{ "CourseCatalog"|get_lang }}
        </a>
    {% else %}
        {{ "PleaseAllowUsALittleTimeToSubscribeYouToOneOfOurCourses"|get_lang }}
    {% endif %}

{% endif %}default/learnpath/impress.tpl000064400000001375152004101310012342 0ustar00<div class="fallback-message">
    <p>Your browser <b>doesn't support the features required</b> by impress.js, so you are presented with a simplified version of this presentation.</p>
    <p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or <b>Firefox</b> browser.</p>
</div>

<div id="impress">
    {{ html }}
</div>

<div class="hint">
    <p>Use a spacebar or arrow keys to navigate</p>
</div>
<script>
if ("ontouchstart" in document.documentElement) { 
    document.querySelector(".hint").innerHTML = "<p>Tap on the left or right to navigate</p>";
}
</script>

<script>     
$(document).ready(function() {
    impress().init(); 
});
</script>
<script type="text/javascript" src="{{_p.web_lib}}javascript/impress/impress.js"></script>default/link/edit_category.tpl000064400000000461152004101310012454 0ustar00
{{javascript}}

<div class="btn-toolbar actions-bar" >
    <div class="btn-group">
        <a href="{{root}}&amp;action=listing" class="btn">
            <i class="size-32 icon-back"></i>
        </a>
    </div>
</div>

{% for message in messages %}
    {{ message }}
{% endfor %}

{{form.return_form()}}default/link/index.tpl000064400000032300152004101310010736 0ustar00
{{javascript}}

<script type="text/javascript">
    
    {% if is_allowed_to_edit %}
        var sec_token = '{{sec_token}}';
    {% endif %}
    
$(function() {
	$('.collapsible .head').click(function(e) {
        $(this).toggleClass('collapsed');
        $(this).next().toggle();
		return true;
	});
    
    {% if is_allowed_to_edit %}
        $(".categories.sortable" ).sortable({
            axis: 'y',
            handle: '.handle',
            //placeholder: 'ui-state-highlight',
            update: function(event, ui) { 
                var c_id = 0;
                var ids = [];
                var items;
                items = $(this).children('li');
                items.each(function(index, li){
                    li = $(li);
                    var id;
                    id = li.attr('data-id'); 
                    c_id = li.attr('data-c_id'); 
                    ids.push(id);
                });

                LinkCategory.sort(c_id, ids, message.update);
            }
        });
        $(".categories.sortable" ).disableSelection();

        $(".links.sortable" ).sortable({
            axis: 'y',
            placeholder: 'ui-state-highlight',
            update: function(event, ui) { 
                var c_id = 0;
                var ids = [];
                var items;
                items = $(this).children('li');
                items.each(function(index, li){
                    li = $(li);
                    var id;
                    id = li.attr('data-id'); 
                    c_id = li.attr('data-c_id'); 
                    ids.push(id);
                });

                Link.sort(c_id, ids, message.update);
            }
        });
        $(".links.sortable" ).disableSelection();
    
    {% endif %}
    
});
 
 function expand_all(){
    $('.collapsible .head').removeClass('collapsed').next().show();
 }
 
 function collapse_all(){     
    $('.collapsible .head').addClass('collapsed').next().hide();
 }
 
 function delete_category(name){   
    if(!confirm("{{'ConfirmYourChoice'|get_lang}}")){
        return false;
    } 

    var item = $('#'+name);
    var id = item.attr('data-id'); 
    var c_id = item.attr('data-c_id'); 

    var f = function(data){
        if(data.success){
            item.remove();
        }
        message.update(data);
    };
    LinkCategory.del(c_id, id, f);
 }
 
 function delete_all(){
    if(!confirm("{{'ConfirmYourChoice'|get_lang}}")){
        return false;
    } 
    
    var f = function(data){
        if(data.success){
            var item = $('.data');
            item.remove();
        }
        message.update(data);
    };
    Link.delete_by_course({{c_id}}, {{session_id}}, f);
    
 }
 
 function delete_link(name, btn){   
    if(!confirm("{{'ConfirmYourChoice'|get_lang}}")){
        return false;
    } 

    var item = $('#'+name);
    var id = item.attr('data-id'); 
    var c_id = item.attr('data-c_id'); 

    var f = function(data){
        if(data.success){
            item.remove();
        }else{            
            $(btn).removeClass("loading");
        }
        message.update(data);
    };
    $(btn).addClass("loading");
    Link.del(c_id, id, f);
 }
 
function switch_li_visibility(name, btn)
{
    var li = $('#'+name);
    var id = li.attr('data-id'); 
    var c_id = li.attr('data-c_id'); 

    var is_visible = !li.hasClass('invisible')

    var f = function(data){
        if(data.success){
            var btn =  $('.btn.visibility', li);
            if(is_visible){
                btn.addClass('show');
                btn.removeClass('hide');
                li.addClass('invisible');
                li.removeClass('visible');
            }else{
                btn.removeClass('show');
                btn.addClass('hide');
                li.removeClass('invisible');
                li.addClass('visible');
            }
        }
        message.update(data);
        $(btn).removeClass("loading");
    };
    if(is_visible){
        Link.hide(c_id, id, f);
    }else{
        Link.show(c_id, id, f);
    }
    $(btn).addClass("loading");
}

function validate_link(name, btn){
    var li = $('#'+name);
    var id = li.attr('data-id'); 
    var c_id = li.attr('data-c_id'); 
    
    var f = function(data){
        if(data.success){
            li.addClass('valid');
            li.removeClass('invalid');
        }else{
            li.addClass('invalid');
            li.removeClass('valid');
        }
        message.update(data);
        $(btn).removeClass("loading");
    };
    $(btn).addClass("loading");
    Link.validate(c_id, id, f);
}

</script>

<div id="messages">
{% for message in messages %}
    {{ message }}
{% endfor %}
</div>

<div class="btn-toolbar actions-bar" >
    {% if is_allowed_to_edit %}
        <div class="btn-group edit">
            <a href="{{root}}&amp;action=add_category" class="btn new_folder" title="{{'AddCategory'|get_lang}}">
                <i class="size-32 icon-new-folder"></i>
            </a>
            <a href="{{root}}&amp;action=add_link" class="btn new_link" title="{{'AddLink'|get_lang}}">
                <i class="size-32 icon-new-link"></i>
            </a>
            <a href="javascript:void(0)" onclick="delete_all();return false;" class="btn delete_all" title="{{'DeleteAll'|get_lang}}">
                <i class="size-32 icon-delete-all"></i>
            </a>
            <a href="{{root}}&amp;action=import_csv" class="btn import_csv" title="{{'ImportCSV'|get_lang}}">
                <i class="size-32 icon-import-csv"></i>
            </a>
            <a href="{{root}}&amp;action=export_csv" class="btn" title="{{'ExportAsCSV'|get_lang}}">
                <i class="size-32 icon-export-csv"></i>
            </a>
        </div>
    {% endif %}
    <div class="btn-group">
        <a href="javascript:void(0)" onclick="expand_all();return false;" class="btn" title="{{'showall'|get_lang}}">
            <i class="size-32 icon-expand"></i>
        </a>
        <a href="javascript:void(0)" onclick="collapse_all();return false;" class="btn" title="{{'shownone'|get_lang}}">
            <i class="size-32 icon-collapse"></i>
        </a>
    </div>
</div>

<div class="data">
    <ul style="list-style: none; margin-left:0;" class="links sortable">
        {% for link in links %}
            {% set link_class %}
                {% if loop.first %}first{% endif %}
                {% if loop.last %}last{% endif %}
                {% if loop.index is odd %}odd{% else %}even{% endif %}
                {% if link.is_visible() %}visible{% else %}invisible{% endif %}
            {% endset %}

            <li id="link_{{link.id}}" class="link {{link_class}}" data-id="{{link.id}}" data-c_id="{{link.c_id}}" data-type="link" >
                <a class="icon" target="{{link.target}}" href="{{root}}&amp;action=go&amp;id={{link.id}}&amp;c_id={{link.c_id}}">
                    <img alt="{{'Links'|get_lang}}" src="../../main/img/link.gif" />        
                </a>
                <a class="title" target="{{link.target}}" href="{{root}}&amp;action=go&amp;id={{link.id}}&amp;c_id={{link.c_id}}">
                    {%if link.title %}{{link.title}}{% else %}{{link.url}}{%endif%}                
                </a>
                {% if link.session_id %}
                    {{session_image}}
                {% endif %}
                <div class="status" style="display:inline-block;">&nbsp;</div>
                {% if is_allowed_to_edit %}
                    <div style="float:right;">
                        <a href="javascript:void(0)" onclick="validate_link('link_{{link.id}}', this);return false;" 
                        title="{{'CheckURL'|get_lang}}" 
                        class="btn validate_link">
                            
                        </a>   
                        <a href="{{root}}&amp;action=edit_link&amp;id={{link.id}}&amp;c_id={{link.c_id}}" 
                        title="{{'Edit'|get_lang}}" 
                        class="">
                            <i class="size-22 icon-edit"></i>
                        </a>   
                        <a href="javascript:void(0)" onclick="switch_li_visibility('link_{{link.id}}', this);return false;" 
                        class="btn visibility {%if link.visibility == 1%}hide{%else%}show{%endif%}">
                            
                        </a>
                        <a href="javascript:void(0)" onclick="delete_link('link_{{link.id}}', this);return false;" title="{{'Delete'|get_lang}}" class="">
                            <i class="size-22 icon-delete"></i>
                        </a>
                    </div>
                {% endif %}
                <div class="description">{{link.description}}</div>
            </li>
        {% endfor%}
    </ul>

    <ul id="link_categories" class="categories sortable" style="list-style: none; margin-left:0;">
    {% for category in categories %}
        <li id="category_{{category.id}}" class="link_category collapsible" data-id="{{category.id}}" data-c_id="{{category.c_id}}" data-type="category" >
            <div class="head handle collapsed">    
                {% if is_allowed_to_edit %}
                    <div style="float:right;">
                        <a href="{{root}}&amp;action=edit_category&amp;id={{category.id}}&amp;c_id={{category.c_id}}" 
                        onclick="event.stopPropagation();" 
                        title="{{'Edit'|get_lang}}"
                        class="">
                            <i class="size-22 icon-edit"></i>
                        </a>            
                        <a href="javascript:void(0)" 
                        onclick="delete_category('category_{{category.id}}');event.stopPropagation();return false;" 
                            title="{{'Delete'|get_lang}}"
                            class="">
                            <i class="size-22 icon-delete"></i>
                        </a>
                    </div>
                {% endif %}
                <h3>
                    <a href="{{root}}&amp;action=view&amp;id={{category.id}}&amp;c_id={{category.c_id}}">{{category.category_title|escape}}</a>
                </h3>
                {{category.description}}
            </div>
            <div class="body" style="display:none;"> 
                <ul style="list-style: none; margin-left:0;" class="links sortable">
                    {% for link in category.links %}
                    {% set link_class %}
                        {% if loop.first %}first{% endif %}
                        {% if loop.last %}last{% endif %}
                        {% if loop.index is odd %}odd{% else %}even{% endif %}
                        {% if link.is_visible() %}visible{% else %}invisible{% endif %}
                    {% endset %}

                        <li id="link_{{link.id}}" class="link {{link_class}}" data-id="{{link.id}}" data-c_id="{{link.c_id}}" data-type="link" >
                            <a class="icon" target="{{link.target}}" href="{{root}}&amp;action=go&amp;id={{link.id}}&amp;c_id={{link.c_id}}">
                                <img alt="{{'Links'|get_lang}}" src="../../main/img/link.gif" />        
                            </a>
                            <a class ="title" target="{{link.target}}" href="{{root}}&amp;action=go&amp;id={{link.id}}&amp;c_id={{link.c_id}}">
                                {%if link.title %}{{link.title}}{% else %}{{link.url}}{%endif%}                
                            </a>
                            {% if link.session_id %}
                                {{session_image}}
                            {% endif %}
                            <div class="status" style="display:inline-block;">&nbsp;</div>
                            {% if is_allowed_to_edit %}
                                <div style="float:right;">
                                    <a href="javascript:void(0)" onclick="validate_link('link_{{link.id}}', this);return false;" 
                                    title="{{'CheckURL'|get_lang}}" 
                                    class="btn validate_link"></a>   
                                    <a href="{{root}}&amp;action=edit_link&amp;id={{link.id}}&amp;c_id={{link.c_id}}" 
                                    onclick="" 
                                    title="{{'Edit'|get_lang}}"
                                    class="">
                                        <i class="size-22 icon-edit"></i>
                                    </a>   
                                    <a href="javascript:void(0)" 
                                    onclick="switch_li_visibility('link_{{link.id}}', this);return false;" 
                                    class="btn visibility {%if link.visibility == 1%}hide{%else%}show{%endif%}"></a>
                                    <a href="javascript:void(0)" 
                                    onclick="delete_link('link_{{link.id}}', this);return false;" 
                                    title="{{'Delete'|get_lang}}"
                                    class="">
                                        <i class="size-22 icon-delete"></i>
                                    </a>
                                </div>
                            {% endif %}
                        </li>
                    {% endfor%}
                </ul>
            </div>
            <div class="details "></div>
        </li>
    {% endfor%}
    </ul>
</div>default/link/edit_link.tpl000064400000000461152004101310011574 0ustar00
{{javascript}}

<div class="btn-toolbar actions-bar" >
    <div class="btn-group">
        <a href="{{root}}&amp;action=listing" class="btn">
            <i class="size-32 icon-back"></i>
        </a>
    </div>
</div>

{% for message in messages %}
    {{ message }}
{% endfor %}

{{form.return_form()}}default/mail_editor/email_link.js.tpl000064400000003311152004101310013701 0ustar00<script>
/* For licensing terms, see /license.txt */
/*
 * JS library to deal with event handlers.
 * This script needs to be included from a script where the global include file has already been loaded.
 * @package chamilo.inc.lib.javascript
 * @author Yannick Warnier
 * @author Julio Montoya - Adding twig support
 */

/*
 * Assigns any event handler to any element
 * @param	object	Element on which the event is added
 * @param	string	Name of event
 * @param	string	Function to trigger on event
 * @param	boolean	Capture the event and prevent
 */

function addEvent(elm, evType, fn, useCapture) {
    if (elm.addEventListener){
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if(elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	} else {
		elm['on' + evType] = fn;
	}
}

/*
 * Adds the event listener
 */
function addListeners(e) {
	var my_links = $('.clickable_email_link');    
	for(var i=0;i < my_links.length;i++) {
		addEvent(my_links[i],'click',loadEmailEditor,false);
	}
}

/*
 * Loads a specific page on event triggering
 */
function loadEmailEditor(e) {
	var el;
	if(window.event && window.event.srcElement) {
		el = window.event.srcElement;
	}
	if (e && e.target) {
		el = e.target;
	}
	if(!el) {
		return;
	}
	//el is now my link object, so I can get el.href here to load the new window
	var link = el.href.replace('mailto:','');
	document.location = "{{ _p.web_main }}inc/email_editor.php?dest=" + link;
	//cancel default link action
	if (window.event && window.event.returnValue){
		window.event.returnValue = false;
	}
	if(e && e.preventDefault){
		e.preventDefault();
	}
}

$(document).ready(function() {
    addEvent(window,'load',addListeners,false);
});

</script>default/notebook/edit.tpl000064400000000343152004101310011441 0ustar00
{% include 'default/notebook/header.tpl' %}

<div class="actions-bar btn-toolbar" >
    <a href = "{{root}}&amp;action=index" class="btn back">
        <i class="size-32 icon-back"></i>
    </a>
</div>

{{form.return_form()}}
default/notebook/header.tpl000064400000000163152004101310011744 0ustar00{{javascript}}

<div id="messages">
    {% for message in messages %}
        {{ message }}
    {% endfor %}
</div>default/notebook/index.tpl000064400000004006152004101310011623 0ustar00{% include 'default/notebook/header.tpl' %}
{% include 'default/notebook/javascript.tpl' %}

<div class="btn-toolbar actions-bar" >
    {% if is_allowed_to_edit %}
        <div class="btn-group edit">
        <a href="{{root}}&amp;action=add" class="notebook btn new term" title="{{'Add'|get_lang}}">
            <i class="size-32 icon-new-note"></i>
        </a>
            <a href="{{root}}&amp;action=import_csv" class="btn" title="{{'ImportCSV'|get_lang}}">
                <i class="size-32 icon-import-csv"></i>
            </a>
            <a href="{{root}}&amp;action=export_csv" class="btn" title="{{'ExportAsCSV'|get_lang}}">
                <i class="size-32 icon-export-csv"></i>
            </a>
            <a href="javascript:void(0)" onclick="ui.remove_by_course('entries', this);return false;" class="btn delete_all" title="{{'DeleteAll'|get_lang}}">
                <i class="size-32 icon-delete-all"></i>
            </a>
        </div>
    {% endif %}
    <div class="btn-group sort">
        <a href="{{root}}&amp;action=index&amp;sort_column=creation_date&amp;sort_direction={%if sort_direction == 'ASC' and sort_column == 'creation_date' %}DESC{% else %}ASC{% endif %}"
        class="btn" 
        title="{{'SorteByCreatedDate'|get_lang}}">
                <i class="size-32 icon-sort-by-created-date"></i>
        </a>
        <a href="{{root}}&amp;action=index&amp;sort_column=update_date&amp;sort_direction={%if sort_direction == 'ASC' and sort_column == 'update_date' %}DESC{% else %}ASC{% endif %}" 
        class="btn" 
        title="{{'SorteByUpdatedDate'|get_lang}}">
                <i class="size-32 icon-sort-by-modified-date"></i>
        </a>
        <a href="{{root}}&amp;action=index&amp;sort_column=title&amp;sort_direction={%if sort_direction == 'ASC' and sort_column == 'title' %}DESC{% else %}ASC{% endif %}" 
        class="btn" 
        title="{{'SortByTitle'|get_lang}}">
                <i class="size-32 icon-sort-by-title"></i>
        </a>
    </div>
</div>

{% include 'default/notebook/list.tpl' %}

default/notebook/javascript.tpl000064400000001231152004101310012657 0ustar00<script type="text/javascript" src="{{www}}/main/notebook/resources/js/proxy.js"></script>
<script type="text/javascript" src="{{www}}/main/notebook/resources/js/ui.js"></script>

<script type="text/javascript">
    
$(function() {

    ui.proxy = notebook;

    window.context = {};
    
    context.sec_token = '{{sec_token}}';
    context.c_id = '{{c_id}}';
    context.session_id = '{{session_id}}';
    context.www = '{{www}}';
    context.ajax = '{{www}}/main/inc/ajax/notebook.ajax.php';
    
    if(typeof(lang) == "undefined")
    {
        window.lang = {};
    }
    
    lang.ConfirmYourChoice = "{{'ConfirmYourChoice'|get_lang}}";  
    
});

</script>default/notebook/upload.tpl000064400000000341152004101310011776 0ustar00{% include 'default/notebook/header.tpl' %}

<div class="actions-bar btn-toolbar" >
    <a href = "{{root}}&amp;action=index" class="btn back">
        <i class="size-32 icon-back"></i>
    </a>
</div>

{{form.return_form()}}default/notebook/list.tpl000064400000002422152004101310011467 0ustar00
<ul id="entries" class="notebook entries unstyled" data-c_id="{{c_id}}" data-session_id="{{session_id}}" >
{% for item in items %}
    <li id="notebook_{{item.id}}" class="notebook note" data-id="{{item.id}}" data-c_id="{{item.c_id}}" data-type="notebook">
        <div class="title sectiontitle">
            {% if is_allowed_to_edit %}
                <div class="pull-right element-actions">
                    <a href="{{root}}&amp;action=edit&amp;id={{item.id}}" 
                    title="{{'Edit'|get_lang}}">
                        <i class="size-22 icon-edit"></i>
                    </a>
                    <a href="{{root}}&amp;action=delete&amp;id={{item.id}}" 
                    onclick="ui.remove('notebook_{{item.id}}', this); return false;"
                    title="{{'Delete'|get_lang}}">
                        <i class="size-22 icon-delete"></i>
                    </a>
                </div>
            {% endif %}
            
            {{item.title}}
            
            {% if item.session_id %}
                {{session_image}}
            {% endif %}
        </div>
        <div class="sectioncomment">
            {{item.description}}
        </div>
        <div class="sectionfooter footer">{{item.update_date|date}}</div>
    </li>
{% endfor %}
</ul>default/skill/profile_item.tpl000064400000000604152004101310012470 0ustar00{% if profiles is not null %}
    <div class="page-header">
        <h3>{{ "SkillProfiles"|get_lang }}</h3>
    </div>
    <ul class="holder">
        {%for profile in profiles %}        
            <li class="bit-box">
                <a class="load_profile" rel="{{ profile.id }}" href="#">{{ profile.name }}</a>
            </li>        
        {% endfor %}
    </ul>    
{% endif %}default/skill/profile.tpl000064400000011342152004101310011453 0ustar00{% if search_skill_list is not null %}    
    <div class="skills-skills">
        <h3>{{"Skills"|get_lang}}</h3>
        <ul class="holder">             
            {% for search_skill_id in search_skill_list %}        
                <li class="bit-box">
                    {{ skill_list[search_skill_id].name}}
                    <a class="closebutton" href="?a=remove_skill&id={{search_skill_id}}"></a>
                </li>        
            {% endfor %}
        </ul>
        <a id="add_profile" class="btn" href="#"> {{"SaveThisSearch"|get_lang}}</a>
    </div>
{% endif %}

{% if profiles is not null %}    
    <div class="skills-profiles">
        <h3>{{"SkillProfiles"|get_lang}}</h3>
        <ul class="holder">
            {%for profile in profiles %}        
                <li class="bit-box">
                    <a href="?a=load_profile&id={{profile.id}}">{{profile.name}}</a>
                </li>        
            {% endfor %}
        </ul>    
    </div>
{% endif %}

{% if order_user_list is not null %}
    {% for count, user_list in order_user_list %}
        <div class="row-fluid">
            <div class="span12">  
            <div class="page-header">
                <h2>
                {% if count == total_search_skills %}
                    {{ "CompleteMatch"|get_lang }}
                {% else %}
                    {% if (total_search_skills - count) == 1 %}
                        {{ "MissingOneStepToMatch"|get_lang }}</h2>
                    {% else %}
                        {{ "MissingXStepsToMatch"|get_lang | format(total_search_skills - count)}}                        
                    {% endif %}        
                {% endif %}
                </h2>
                    
            </div>
            </div>
        </div>

        <div class="row-fluid">
        {% for user in user_list %}
            <div class="span4">
                <div class="well_border">                                 
                    <h3>
                        <img src="{{user.user.avatar_small}}" /> 
                        <a href="{{ _p.web_main }}social/profile.php?u={{ user['user'].user_id }}">{{ user['user'].complete_name }} ({{user['user'].username}}) </a>
                    </h3>
                    <hr >
                    <div class="ui-widget-content ">
                        <h4>{{ "Skills"|get_lang }} {{ user.total_found_skills }} / {{ total_search_skills }}</h4>
                        <ul>                
                            {% for skill_data in user.skills %}                                     
                                <li>
                                    {% if skill_list[skill_data.skill_id].name is not null %}                       
                                        {% if skill_data.found %}                                        
                                            <span class="label label-important">{{ skill_list[skill_data.skill_id].name }}</span>
                                        {% else %} 
                                            <span class="label_tag skill">{{ skill_list[skill_data.skill_id].name }}</span>
                                        {% endif %}        
                                        
                                    {% else %} 
                                        {{ "SkillNotFound"|get_lang }}
                                    {% endif %}
                                    {# if $skill_data.found 
                                         IHaveThisSkill"|get_lang
                                    #}
                                </li>
                            {% endfor %}
                        </ul>
                    </div>    
                </div> 
            </div>
        {% endfor %}
    {% endfor %}
    </div>
{% else %}      
    {% if search_skill_list is null %}
        <div class="warning-message">{{"NoResults"|get_lang}}</div>
     {% endif %}     
{% endif %}

<div id="dialog-form" style="display:none;">    
    <form id="save_profile_form" class="form-horizontal" name="form">       
        <fieldset>
            <div class="control-group">            
                <label class="control-label" for="name">{{"Name"|get_lang}}</label>            
                <div class="controls">
                    <input type="text" name="name" id="name" size="40" />             
                </div>
            </div>        
            <div class="control-group">            
                <label class="control-label" for="name">{{"Description"|get_lang}}</label>            
                <div class="controls">
                    <textarea name="description" id="description" class="span2"  rows="7"></textarea>
                </div>
            </div>  
        </fieldset>
    </form>    
</div>
default/skill/skill_ranking.tpl000064400000000074152004101310012642 0ustar00<script>
$(function() {
    {{ jqgrid_html }}
});
</script>
default/skill/skill_tree.tpl000064400000042313152004101310012152 0ustar00<style>
/* just because */
body {    
    /* fallback */ 
    background-color: #eee; 
    background-image: url(images/radial_bg.png); 
    background-position: center center; 
    background-repeat: no-repeat; 
    
    /* Safari 4-5, Chrome 1-9 */ /* Can't specify a percentage size? Laaaaaame. */ 
    background: -webkit-gradient(radial, center center, 0, center center, 460, from(#eee), to(#666)); 
    /* Safari 5.1+, Chrome 10+ */ 
    background: -webkit-radial-gradient(circle, #eee, #666); 
    /* Firefox 3.6+ */ 
    background: -moz-radial-gradient(circle, #eee, #666); 
    /* IE 10 */ 
    background: -ms-radial-gradient(circle, #eee, #666);
}
</style>
<script type="text/javascript">

//js settings (see the skills.js for more)
var url             = '{{url}}';

//Block settings see the SkillVisualizer Class
var offset_x                = {{skill_visualizer.offset_x}};
var offset_y                = {{skill_visualizer.offset_y}};
var space_between_blocks_x  = {{skill_visualizer.space_between_blocks_x}};
var space_between_blocks_y  = {{skill_visualizer.space_between_blocks_y}};
var center_x                = {{skill_visualizer.center_x}};
var block_size              = {{skill_visualizer.block_size}};

$(window).resize(function() {    
    jsPlumb.repaintEverything();    
    /*jsPlumb.repaint(".skill_root");    
    // When resize repaint everything + fix the root position
    normal_weight = $('.skill_child :first-child').width();                
    sum = $('body').width() / 2 - normal_weight/2;
    $('.skill_root').animate({ left: sum, top:0 }, { duration: 100 });*/
});

jsPlumb.ready(function() {
    //Setting the loading dialog
    var loading = $( "#dialog-loading" );    
    loading.dialog( "destroy" );
    loading.dialog({
        autoOpen:false,
        height: 120,
        modal: true,
        zIndex: 10000,
        resizable :false,        
        closeOnEscape : false,
        disabled: true,            
        open: function(event, ui) { $(this).parent().children().children('.ui-dialog-titlebar-close').hide(); }
    });    
    
    jQuery.ajaxSetup({
        beforeSend: function() {
            loading.dialog( "open" );
            //$('#skill_tree').hide();
            console.log('before------------------->>');
        },
        complete: function(){
            loading.dialog( "close" );                    
            //$('#skill_tree').show();
            console.log('complete------------------->>');
        },
        success: function() {}
    });
        
    //Return to root button
    $('#return_to_root').live('click', function(){
        clean_values();
        console.log('Clean values');        
        console.log('Reopen the root ');
    });
    
    //Open dialog
    $("#dialog-form").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 550, 
        height  : 480
    });
    
    //Filling skills select
    /*
    $.getJSON("{{url}}&a=get_skills&parent_id="+parents[0], {},     
        function(data) {
            $.each(data, function(n, parent) {
                // add a new option with the JSON-specified value and text
                $("<option />").attr("value", parent.id).text(parent.name).appendTo("#parent_id");
            });
        }
    );*/
    
    //Filling gradebook select
    $.getJSON("{{url}}&a=get_gradebooks", {},     
        function(data) {
            $.each(data, function(n, gradebook) {
                // add a new option with the JSON-specified value and text
                $("<option />").attr("value", gradebook.id).text(gradebook.name).appendTo("#gradebook_id");
            });
        }
    );
    
    //Add button on click    
    $("#add_item_link").click(function() {     
        $("#name").attr('value', '');
        $("#description").attr('value', '');        
        $("#parent_id option:selected").removeAttr('selected');
        $("#gradebook_id option:selected").removeAttr('selected');               
        $("#dialog-form").dialog("open");
        
        //Filling skills select
        var my_id = 1;
        
        if (parents.length > 1) {
            my_id = parents[1].split('_')[1];            
        }
        //Remove all options
        $("#parent_id").find('option').remove();

        $.getJSON("{{url}}&a=get_skills&id="+my_id, {
            },     
            function(data) {
                $.each(data, function(n, parent) {
                    // add a new option with the JSON-specified value and text
                    $("<option />").attr("value", parent.id).text(parent.name).appendTo("#parent_id");
                });
            }
        );
    });
    
    //Add button process
    
    var name = $( "#name" ),
    description = $( "#description" ),  
    allFields = $( [] ).add( name ).add( description ), tips = $(".validateTips");    
    
    $("#dialog-form").css('z-index', '9001');
    
    $("#dialog-form").dialog({              
        buttons: {
            "{{"Add"|get_lang}}" : function() {                
                var bValid = true;
                bValid = bValid && checkLength( name, "name", 1, 255 );
                
                if (bValid) {
                    var params = $("#add_item").serialize();
                          
                    $.ajax({
                        async: false,
                        url: url+'&a=add&'+params,
                        success:function(my_id) {                            
                            //Setting the selected id from the form
                            parent_id = $("#parent_id option:selected").attr('value');                            
                            
                            //Reseting jsplumb
                            jsPlumb.reset();                            
                            //Deletes all windows
                            $('.skill_root').remove();
                            $('.skill_child').remove();
                            
                            //cleaning skills
                            skills = [];
                            
                            //Setting the first parent
                            first_parent = parents[0];
                            
                            //Deleting the first parent
                            console.log('parents before '+parents);
                            parents.splice(0,1);     
                            console.log('parents now '+parents);                            
                            
                            //Remove parent block                      
                            $('#block_'+parent_id).remove();
                            
                            //Open the block                 
                            open_block('block_'+parent_id, 0, 1);                            
                            
                            //Close dialog
                            $("#dialog-form").dialog("close");                                      
                        }                           
                    });
                }
            }
        },              
        close: function() {     
            $("#name").attr('value', '');
            $("#description").attr('value', '');                
        }
    });
    
    //Clicking in a box skill (we use live instead of bind because we're creating divs on the fly )
    $(".open_block").live('click', function() {     
        var id = $(this).attr('id');
        
        console.log('click.open_block id: ' + id);
        console.log('parents: ' + parents);
        
        //if is root
        if (parents[0] == id) {
            parents = [id];
        }     
        
        if (parents[1] != id) {
            console.log('parents.length ' +parents.length);
            
            //If there are 2 parents in the skill_tree
            if (parents.length == 2 ) {
                first_parent = parents[0]; 
                $('#'+parents[1]).css('top', '0px');
                //console.log('deleting: '+parents[0]);        
                //removing father
                console.log("first_parent " + first_parent);
                
                for (var i = 0; i < skills.length; i++) {  
                    //console.log('looping '+skills[i].element + ' ');
                    if (skills[i].element == parents[0] ) {
                        console.log('deleting parent:'+ skills[i].element + ' here ');                             
                        jsPlumb.deleteEndpoint(skills[i].element);
                        jsPlumb.detachAllConnections(skills[i].element);
                        jsPlumb.removeAllEndpoints(skills[i].element);  
                        $("#"+skills[i].element).remove();
                    }
                }                                
                parents.splice(0,1);                
                parents.push(id);
                console.log('parents after slice/push: ' + parents);
            }     
                
            if ($(this).hasClass('first_window')) {  
                console.log('im in a first_window (root)');
                $('#'+first_parent).css('top', '0px');
                //show the first_parent
                //if (first_parent != '') {
                   parents = [first_parent, id];                   
                   open_parent(first_parent, id);
                //}
            }
            
            if (jQuery.inArray(id, parents) == -1) {                              
                parents.push(id);
                console.log('parents push: ' + parents);
            }
            open_block(id, 0, 0);            
        }
        
        //Setting class       
        cleanclass($(this));   
        $(this).addClass('second_window');
        
        parent_div = $("#"+parents[0]);
        cleanclass(parent_div);
        parent_div.addClass('first_window');
        parent_div.addClass('skill_root');
        
        parent_div = $("#"+parents[1]);        
        cleanclass(parent_div);
        parent_div.addClass('second_window');
       
        //console.log(parents);
       // console.log(skills);        
        console.log('first_parent : ' + first_parent);             
        
        //redraw
        jsPlumb.repaintEverything();
        jsPlumb.repaint(id);
 
    });
    
    //Skill title click  
    $(".edit_block").live('click',function() {      
        var my_id = $(this).attr('id');
        my_id = my_id.split('_')[2];
        
        //Cleaning selected
        $("#parent_id option:selected").removeAttr('selected');
        $("#gradebook_id option:selected").removeAttr('selected');
        
        $.ajax({
            url: url+'&a=get_skill_info&id='+my_id,             
            success: function(json) {
                var skill = jQuery.parseJSON(json);
                $("#name").attr('value', skill.name);
                $("#id").attr('value',   skill.id);                        
                $("#description").attr('value', skill.description);                
                //filling parent_id
                $("#parent_id option[value='"+skill.extra.parent_id+"']").attr('selected', 'selected');
                //filling the gradebook_id         
                jQuery.each(skill.gradebooks, function(index, data) {                    
                    $("#gradebook_id option[value='"+data.id+"']").attr('selected', 'selected');            
                });
            }
        });        
                
        $("#gradebook_id").trigger("liszt:updated");
        $("#parent_id").trigger("liszt:updated");
        $("#dialog-form").dialog("open");
        return false;
    });
        
    
    //Clicking in a box
    $(".window").bind('click', function() {
        var id = $(this).attr('id');
        id = id.split('_')[1];
    });    

    // chrome fix.
    document.onselectstart = function () { return false; };             

    // render mode
    var resetRenderMode = function(desiredMode) {
        var newMode = jsPlumb.setRenderMode(desiredMode);        
        jsPlumbDemo.init();
    };
    resetRenderMode(jsPlumb.CANVAS);       
});
    
;(function() {         
    prepare = function(div, endpointOptions) {
        console.log('preparing = '+div);
        console.log('endpointOptions = '+endpointOptions);
        //jsPlumbDemo.initHover(elId);
        
        var endPoint = jsPlumb.addEndpoint(div, endpointOptions);         
        skills.push({
            element: div, endp:endPoint
        });
        return endPoint;        
    },    
    window.jsPlumbDemo = {  	   
        init : function() {
            console.log('Import defaults');            
            jsPlumb.Defaults.Anchors = [ "BottomCenter", "TopCenter" ];            
            jsPlumb.Defaults.Container = "skill_tree";
            
            open_block('block_1', 0, 1);
           
            // listen for clicks on connections, and offer to delete connections on click.			
			jsPlumb.bind("click", function(conn, originalEvent) {
				/*if (confirm("Delete connection from " + conn.sourceId + " to " + conn.targetId + "?"))
					jsPlumb.detach(conn); */
			});            
        }
    };
})();

$(document).ready(function() {
/*
    //When creating a connection see
    //http://jsplumb.org/apidocs/files/jsPlumb-1-3-2-all-js.html#bind 
    jsPlumb.bind("jsPlumbConnection", function(conn) {
        //alert("Connection created " + conn.sourceId + " to " + conn.targetId + " ");
            //jsPlumb.detach(conn); 
    });
    //When double clicking a connection
    jsPlumb.bind("click", function(conn) {        
        if (confirm("Delete connection from " + conn.sourceId + " to " + conn.targetId + "?"))
            jsPlumb.detach(conn); 
    });
    
     //When double clicking a connection
    jsPlumb.bind("click", function(endpoint) {
        if (confirm("Delete connection from " + conn.sourceId + " to " + conn.targetId + "?"))
            jsPlumb.detach(conn); 
    });*/
    
    $(".chzn-select").chosen();
    $("#menu").draggable();
});

;(function() {
   
    jsPlumbDemo.getSelector = function(spec) {
        return $(spec);
    };
    
    jsPlumbDemo.attachBehaviour = function() {
        $(".hide").click(function() {
            jsPlumb.toggle($(this).attr("rel"));
        });

        $(".drag").click(function() {
            var s = jsPlumb.toggleDraggable($(this).attr("rel"));
            $(this).html(s ? 'disable dragging' : 'enable dragging');
            if (!s) $("#" + $(this).attr("rel")).addClass('drag-locked'); else $("#" + $(this).attr("rel")).removeClass('drag-locked');
            $("#" + $(this).attr("rel")).css("cursor", s ? "pointer" : "default");
        });

        $(".detach").click(function() {
            jsPlumb.detachAll($(this).attr("rel"));
        });

        $("#clear").click(function() { 
            jsPlumb.detachEverything(); showConnections(); 
        });
    };
})();

</script>

<div id="dialog-loading">
    <div class="modal-body">
        <p style="text-align:center">
            {{ "Loading"|get_lang }}
        <img src="{{ _p.web_img}}loadingAnimation.gif"/>
        </p>
    </div>    
</div>

<div id="menu" class="well" style="top:20px; left:20px; width:380px; z-index: 9000; opacity: 0.9;">
    <h3>{{'Skills'|get_lang}}</h3>
    <div class="btn-group">
        <a style="z-index: 1000" class="btn" id="add_item_link" href="#">{{'AddSkill'|get_lang}}</a>
        <a style="z-index: 1000" class="btn" id="return_to_root" href="#">{{'Root'|get_lang}}</a>
        <a style="z-index: 1000" class="btn" id="return_to_admin" href="{{_p.web_main}}admin">{{'BackToAdmin'|get_lang}}</a>
        
    </div>
</div>
           
<div id="skill_tree"></div>

<div id="dialog-form" style="display:none; z-index:9001;">    
    <p class="validateTips"></p>
    <form class="form-horizontal" id="add_item" name="form">
        <fieldset>
            <input type="hidden" name="id" id="id"/>
            <div class="control-group">            
                <label class="control-label" for="name">{{'Name'|get_lang}}</label>            
                <div class="controls">
                    <input type="text" name="name" id="name" size="40" />             
                </div>
            </div>        
            <div class="control-group">            
                <label class="control-label" for="name">{{'Parent'|get_lang}}</label>            
                <div class="controls">
                    <select id="parent_id" name="parent_id" />
                    </select>                  
                </div>
            </div>                
            <div class="control-group">            
                <label class="control-label" for="name">{{'Gradebook'|get_lang}}</label>            
                <div class="controls">
                    <select id="gradebook_id" name="gradebook_id[]" multiple="multiple"/>
                    </select>             
                    <span class="help-block">
                    {{'WithCertificate'|get_lang}}
                    </span>           
                </div>
            </div>
            <div class="control-group">            
                <label class="control-label" for="name">{{'Description'|get_lang}}</label>            
                <div class="controls">
                    <textarea name="description" id="description" class="span3" rows="7"></textarea>
                </div>
            </div>  
        </fieldset>
    </form>    
</div>default/skill/skill_tree_student.tpl000064400000017221152004101310013720 0ustar00<style>
/* just because */
body {    
    /* fallback */ 
    background-color: #eee; 
    background-image: url(images/radial_bg.png); 
    background-position: center center; 
    background-repeat: no-repeat; 
    
    /* Safari 4-5, Chrome 1-9 */ /* Can't specify a percentage size? Laaaaaame. */ 
    background: -webkit-gradient(radial, center center, 0, center center, 460, from(#eee), to(#666)); 
    /* Safari 5.1+, Chrome 10+ */ 
    background: -webkit-radial-gradient(circle, #eee, #666); 
    /* Firefox 3.6+ */ 
    background: -moz-radial-gradient(circle, #eee, #666); 
    /* IE 10 */ 
    background: -ms-radial-gradient(circle, #eee, #666);
}
</style>
<script type="text/javascript">

//js settings
var url             = '{{url}}';

//Block settings see the SkillVisualizer Class
var offset_x                = {{skill_visualizer.offset_x}};
var offset_y                = {{skill_visualizer.offset_y}};
var space_between_blocks_x  = {{skill_visualizer.space_between_blocks_x}};
var space_between_blocks_y  = {{skill_visualizer.space_between_blocks_y}};
var center_x                = {{skill_visualizer.center_x}};
var block_size              = {{skill_visualizer.block_size}};

jsPlumb.bind("ready", function() {
    
    //Open dialog
    $("#dialog-form").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 550, 
        height  : 350,
    });
    
    //Clicking in a box skill (we use live instead of bind because we're creating divs on the fly )
    $(".open_block").live('click', function() {     
        var id = $(this).attr('id');
        
        console.log('click.open_block id: ' + id);
        console.log('parents: ' + parents);
        
        //if is root
        if (parents[0] == id) {
            parents = [id];
        }     
        
        if (parents[1] != id) {
            console.log('parents.length ' +parents.length);
            
            //If there are 2 parents in the skill_tree
            if (parents.length == 2 ) {
                first_parent = parents[0]; 
                $('#'+parents[1]).css('top', '0px');
                //console.log('deleting: '+parents[0]);        
                //removing father
                console.log("first_parent " + first_parent);
                
                for (var i = 0; i < skills.length; i++) {  
                    //console.log('looping '+skills[i].element + ' ');
                    if (skills[i].element == parents[0] ) {
                        console.log('deleting parent:'+ skills[i].element + ' here ');                             
                        jsPlumb.deleteEndpoint(skills[i].element);
                        jsPlumb.detachAllConnections(skills[i].element);
                        jsPlumb.removeAllEndpoints(skills[i].element);  
                        $("#"+skills[i].element).remove();
                    }
                }                                
                parents.splice(0,1);                
                parents.push(id);
                console.log('parents after slice/push: ' + parents);
            }     
                
            if ($(this).hasClass('first_window')) {  
                console.log('im in a first_window (root)');
                $('#'+first_parent).css('top', '0px');
                //show the first_parent
                //if (first_parent != '') {
                   parents = [first_parent, id];                   
                   open_parent(first_parent, id);
                //}
            }
            
            if (jQuery.inArray(id, parents) == -1) {                              
                parents.push(id);
                console.log('parents push: ' + parents);
            }
            open_block(id, 0, 0);            
        }
        
        //Setting class       
        cleanclass($(this));   
        $(this).addClass('second_window');
        
        parent_div = $("#"+parents[0]);
        cleanclass(parent_div);
        parent_div.addClass('first_window');
        parent_div.addClass('skill_root');
        
        parent_div = $("#"+parents[1]);        
        cleanclass(parent_div);
        parent_div.addClass('second_window');
       
        //console.log(parents);
       // console.log(skills);        
        console.log('first_parent : ' + first_parent);             
        
        //redraw
        jsPlumb.repaintEverything();
        jsPlumb.repaint(id);
 
    });
    
    
    $(".edit_block").live('click',function() {        
        var my_id = $(this).attr('id');
        my_id = my_id.split('_')[2];
                
        $.ajax({
            url: url+'&a=get_skill_info&id='+my_id,             
            success: function(json) {
                var skill = jQuery.parseJSON(json);
                $("#name").html(skill.name);
                $("#id").attr('value',   skill.id);                        
                $("#description").html(skill.description);                
                //filling parent_id
                $("#parent_id option[value='"+skill.extra.parent_id+"']").attr('selected', 'selected');
                //filling the gradebook_id         
                $("#gradebook_id").html('');
                jQuery.each(skill.gradebooks, function(index, data) {                    
                    $("#gradebook_id").append('<span class="label_tag gradebook">'+data.name+'</div>');
                });
            },
        });
                
        $("#dialog-form").dialog("open");
        return false;
    });
    
    $("#dialog-form").dialog({
        close: function() {     
            $("#name").html('');
            $("#description").html('');                
        }
    });    
    
    // chrome fix.
    document.onselectstart = function () { return false; };             

    // render mode
    var resetRenderMode = function(desiredMode) {
        var newMode = jsPlumb.setRenderMode(desiredMode);        
        jsPlumbDemo.init();
    };    
    resetRenderMode(jsPlumb.CANVAS);       
});
        
            
;(function() {    
    window.jsPlumbDemo = {  	   
        init : function() {
            console.log('Import defaults');            
            jsPlumb.Defaults.Anchors = [ "BottomCenter", "TopCenter" ];            
            jsPlumb.Defaults.Container = "skill_tree";
            
            open_block('block_1', 1, 1);            
        }
    };
})();



$(document).ready( function() {     
    //When creating a connection see
    //http://jsplumb.org/apidocs/files/jsPlumb-1-3-2-all-js.html#bind 
    jsPlumb.bind("jsPlumbConnection", function(conn) {
        //alert("Connection created " + conn.sourceId + " to " + conn.targetId + " ");
            //jsPlumb.detach(conn); 
    });
});
</script>

<div id="skill_tree"></div>

<div id="dialog-form" style="display:none;">    
    <form id="add_item" class="form-horizontal"  name="form">
        <fieldset>
        <input type="hidden" name="id" id="id"/>
        <div class="control-group">            
            <label class="control-label" for="name">Name</label>            
            <div class="controls">                
                <span id="name"></span>             
            </div>
        </div>
         <div class="control-group">            
            <label class="control-label" for="name">Description</label>            
            <div class="controls">
                <span id="description"></span>                
            </div>
        </div>  
        <div class="control-group">            
            <label class="control-label" for="name">Gradebook</label>            
            <div class="controls">
                <div id="gradebook_id"></div>                
            </div>
        </div>      
        </fieldset>
    </form>    
</div>default/skill/skill_wheel.js.tpl000064400000061650152004101310012737 0ustar00{# topbar #}
{% include "default/layout/topbar.tpl" %}
<script>

/* Skill wheel settings */
var debug = true;
var url = '{{ url }}';
var skill_to_load_from_get = '{{ skill_id_to_load }}';

//Just in case we want to use it
var main_depth = 4;
var main_parent_id = 0;

// Used to split in two word or not
var max_size_text_length = 11; 
  
/* ColorBrewer settings */
var my_domain = [1,2,3,4,5,6,7,8,9];
var col = 9;
var color_patterns = [];

/*

See colorbrewer documentation
    
color_patterns[1] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Blues[col]);      
color_patterns[2] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Purples[col]);
color_patterns[2] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Blues[6]);
color_patterns[3] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Greens[col]);    
color_patterns[4] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Reds[col]);
color_patterns[5] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Oranges[col]);
color_patterns[6] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.YlOrBr[col]);

color_patterns[7] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.YlGn[col]);    
color_patterns[8] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.YlGnBu[col]);
color_patterns[9] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.GnBu[col]);
color_patterns[10] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.BuGn[col]);
color_patterns[11] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.PuBuGn[col]);
color_patterns[12] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.PuBu[col]);
color_patterns[13] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.BuPu[col]);
color_patterns[14] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.RdPu[col]);
color_patterns[15] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.PuRd[col]);
color_patterns[16] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.OrRd[col]);
color_patterns[17] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.YlOrRd[col]);*/

//Too make the gray tones lighter
col = 3;
color_patterns[18] = d3.scale.ordinal().domain(my_domain).range(colorbrewer.Greys[col]);

//If you want to use the category10()
//var normal_fill = d3.scale.category10().domain(my_domain);

//First 8 colors
var colors = $.xcolor.analogous('#da0'); //8 colors

//How long will be the array of colors?
var color_loops = 4;

// Generating array of colors thanks to the "$.xcolor.analogous" function we can create a rainbow style!
for (i= 0; i < color_loops; i++) {
    //Getting the latest color hex of the 8 colors loaded 
    last_color = colors[colors.length-1].getHex();
    //Getting the complementary
    glue_color = $.xcolor.complementary(last_color);
    //Generating 8 more colors
    temp_color_array = $.xcolor.analogous(glue_color);
    //Adding the color to the main array
    colors = $.merge(colors, temp_color_array);
}

/* The partiton name will have 1 or 2 lines? */
function is_multiline(word) {
    if (word) {
        if (word.length > max_size_text_length) {
            return (word).split(" ").length > 1;
        }
    }
    return false;
}


/* Interpolate the scales! */
function arcTween(d, arc, x, y, r) {
    var my = maxY(d),
    xd = d3.interpolate(x.domain(), [d.x, d.x + d.dx]),
    yd = d3.interpolate(y.domain(), [d.y, my]),
    yr = d3.interpolate(y.range(), [d.y ? 20 : 0, r]);
    return function(d) {
        return function(t) {
            x.domain(xd(t));
            y.domain(yd(t)).range(yr(t));
            return arc(d);
        };
    };
}

/*  Calculate maxY */
function maxY(d) {
    return d.children ? Math.max.apply(Math, d.children.map(maxY)) : d.y + d.dy;
}

/* Use a formula for contrasting colour
   http://www.w3.org/WAI/ER/WD-AERT/#color-contrast
*/
function brightness(rgb) {
    return rgb.r * .299 + rgb.g * .587 + rgb.b * .114;
}

/* Returns whether p is parent of c */

function isParentOf(p, c) {
    if (p === c) return true;
    if (p.children) {
        return p.children.some(function(d) {
            return isParentOf(d, c);
        });
    }
    return false;
}	

function get_color(d) {
    depth = d.depth;
    if (d.family_id) {            
        /*var p = color_patterns[d.family_id];            
        color = p(depth -1 + d.counter);
        d.color = color;*/                  
        if (depth > 1) {              
            family1 = colors[d.family_id];
            family2 = colors[d.family_id + 2];                
            position = d.depth*d.counter;                
            //part_color = $.xcolor.gradientlevel(family1, family2, position, 100);
            part_color = $.xcolor.lighten(family1, position, 15);                
            color = part_color.getHex();
            //console.log(d.depth + " - " + d.name + " + "+ color+ "+ " +d.counter);
        } else {
            color = colors[d.family_id];                
        }                  
        return color;
    }
    color = '#fefefe';        
    return color; //missing colors
}

/*      
gray tones for all skills that have no particular property ("Basic skills wheel" view)
yellow tones for skills that are provided by courses in Chamilo ("Teachable skills" view)
bright blue tones for personal skills already acquired by the student currently looking at the weel ("My skills" view)
dark blue tones for skills already acquired by a series of students, when looking at the will in the "Owned skills" view.
bright green for skills looked for by a HR director ("Profile search" view)
dark green for skills most searched for, summed up from the different saved searches from HR directors ("Most wanted skills")
bright red for missing skills, in the "Required skills" view for a student when looking at the "Most wanted skills" (or later, when we will have developed that, for the "Matching position" view)
*/

/**
    Manage the partition background colors    
**/
function set_skill_style(d, attribute, searched_skill_id) {
    //Default border color (stroke)
    return_stroke = 'black';

    //0. Nice rainbow colors (Comment 1.0 to see the rainbow!)
    return_fill = get_color(d);
    
    //1. Grey colors using colorbrewer
    var p = color_patterns[18];
    color = p(depth -1 + d.counter);
    return_fill = color;          

    //2. Yellow - If the skill has a gradebook attached
    if (d.skill_has_gradebook) {      
        return_fill = '#F89406';            
        //return_stroke = 'grey';
    }

    //3. Red - if you search that skill
    if (searched_skill_id) {
        if (d.id ==  searched_skill_id) {
            return_fill = '#B94A48';
        }
    }
    
    //4. Blue - if user achieved that skill
    if (d.achieved) {        
        return_fill = '#3A87AD';        
        //return_stroke = '#FCD23A';
    }

    switch (attribute) {
        case 'fill':
            //In order to identify the color of the text (white, black) used in other function
            d.color = return_fill;
            return return_fill;
            break;
        case 'stroke':
            return return_stroke;
            break;
    }
}

/* When you click a skill partition */
function click_partition(d, path, text, icon, arc, x, y, r, p, vis) {
    //console.log(d.depth); 
    if (debug) {
        console.log('Clicking a partition skill id: '+d.id);
        console.log(d);
        console.log('real parent_id: '+d.real_parent_id + ' parent_id: ' +d.parent_id);
        console.log('depth ' + d.depth);
        console.log('main_depth ' + main_depth);
        console.log('main_parent_id: ' + main_parent_id);
    }

    if (d.depth >= main_depth) {            
        //main_depth += main_depth;
        if (main_parent_id) {                
            load_nodes(main_parent_id, main_depth);      
        } else {
            load_nodes(d.id, main_depth);      
        }
    }

    if (d.id) {            
        console.log('Getting skill info');
        skill_info = get_skill_info(d.parent_id);            
        console.log(skill_info);
        main_parent_id  = skill_info.extra.parent_id; 
        main_parent_id  = d.parent_id;   
        console.log('Setting main_parent_id: ' + main_parent_id);
    }

    //console.log(main_parent_id);

    /* "No id" means that we reach the center of the wheel go to the root*/        
    if (!d.id) {
        load_nodes(main_parent_id, main_depth);
    }

    if (debug) console.log('Continue to click_partition');

    //console.log(main_parent_id);

    //Duration of the transition
    var duration = 1000;

    path.transition()
    .duration(duration)
    .attrTween("d", arcTween(d, arc, x, y, r));

    /* Updating text position */

    // Somewhat of a hack as we rely on arcTween updating the scales.
    text.style("visibility", function(e) {
        return isParentOf(d, e) ? null : d3.select(this).style("visibility");
    })
    .transition().duration(duration)
    .attrTween("text-anchor", function(d) {
        return function() {
            return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
        };
    })
    .attrTween("transform", function(d) {
        var multiline = is_multiline(d.name); //(d.name || "").split(" ").length > 1;
        return function() {
            var angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
            rotate = angle + (multiline ? -.5 : 0);
            return "rotate(" + rotate + ")translate(" + (y(d.y) + p) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
        };
    })
    .style("fill-opacity", function(e) {
        return isParentOf(d, e) ? 1 : 1e-6;
    })
    .each("end", function(e) {
        d3.select(this).style("visibility", isParentOf(d, e) ? null : "hidden");
    });

    //Add an icon in the partition
    /* Updating icon position */
    /*
    icon.transition().duration(duration)
    .attrTween("text-anchor", function(d) {
        return function() {
            return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
        };
    })
    .attrTween("transform", function(d) {            
        return function() {
            var angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
            rotate = angle;
            return "rotate(" + rotate + ")translate(" + (y(d.y) + p) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
        };
    })
    .style("fill-opacity", function(e) {
        //return isParentOf(d, e) ? 1 : 1e-6;
    })
    .each("end", function(e) {
        //d3.select(this).style("visibility", isParentOf(d, e) ? null : "hidden");
    });*/
}

/* 
    Open a popup in order to modify the skill 
 */
function open_popup(skill_id, parent_id) {
    //Cleaning selects
    $("#gradebook_id").find('option').remove();        
    $("#parent_id").find('option').remove();
    //Cleaning lists
    $("#gradebook_holder").find('li').remove();
    $("#skill_edit_holder").find('li').remove();

    var skill = false;
    if (skill_id) {
        skill = get_skill_info(skill_id);
    }

    var parent = false;
    if (parent_id) {
        parent = get_skill_info(parent_id);
    }

    if (skill) {
        var parent_info = get_skill_info(skill.extra.parent_id);

        $("#id").attr('value',   skill.id);
        $("#name").attr('value', skill.name);
        $("#short_code").attr('value', skill.short_code);                        
        $("#description").attr('value', skill.description);                

        //Filling parent_id                        
        $("#parent_id").append('<option class="selected" value="'+skill.extra.parent_id+'" selected="selected" >');            

        $("#skill_edit_holder").append('<li class="bit-box">'+parent_info.name+'</li>');

        //Filling the gradebook_id
        jQuery.each(skill.gradebooks, function(index, data) {                    
            $("#gradebook_id").append('<option class="selected" value="'+data.id+'" selected="selected" >');
            $("#gradebook_holder").append('<li id="gradebook_item_'+data.id+'" class="bit-box">'+data.name+' <a rel="'+data.id+'" class="closebutton" href="#"></a> </li>');    
        });            

        $("#dialog-form").dialog({
            buttons: {
                 "{{ "Edit"|get_lang }}" : function() {
                     var params = $("#add_item").find(':input').serialize();
                     add_skill(params);                     
                  },                                    
                  /*"{{ "Delete"|get_lang }}" : function() {
                  },*/
                  "{{ "CreateChildSkill"|get_lang }}" : function() {                          
                      open_popup(0, skill.id);
                  },
                  "{{ "AddSkillToProfileSearch"|get_lang }}" : function() {                          
                      add_skill_in_profile_list(skill.id, skill.name);
                  }
            },
            close: function() {     
                $("#name").attr('value','');
                $("#description").attr('value', '');
                //Redirect to the main root
                load_nodes(0, main_depth);

            }
        });            
        $("#dialog-form").dialog("open");            
    }  

    if (parent) {
        $("#id").attr('value','');
        $("#name").attr('value', '');
        $("#short_code").attr('value', '');
        $("#description").attr('value', '');

        //Filling parent_id                        
        $("#parent_id").append('<option class="selected" value="'+parent.id+'" selected="selected" >');            

        $("#skill_edit_holder").append('<li class="bit-box">'+parent.name+'</li>');

        //Filling the gradebook_id
        jQuery.each(parent.gradebooks, function(index, data) {                    
            $("#gradebook_id").append('<option class="selected" value="'+data.id+'" selected="selected" >');
            $("#gradebook_holder").append('<li id="gradebook_item_'+data.id+'" class="bit-box">'+data.name+' <a rel="'+data.id+'" class="closebutton" href="#"></a> </li>');    
        });            

        $("#dialog-form").dialog({
            buttons: {
                 "{{ "Save"|get_lang }}" : function() {
                     var params = $("#add_item").find(':input').serialize();
                     add_skill(params);                     
                  }
            },
            close: function() {     
                $("#name").attr('value', '');
                $("#description").attr('value', '');
                   load_nodes(0, main_depth);              
            }
        });
        $("#dialog-form").dialog("open");        
    }
    return false;
}

/* Handles mouse clicks */
function handle_mousedown_event(d, path, text, icon, arc, x, y, r, padding, vis) {
    switch (d3.event.which) {
        case 1:                
            //alert('Left mouse button pressed');                
            click_partition(d, path, text, icon, arc, x, y, r, padding, vis);
            break;
        case 2:
            //alert('Middle mouse button pressed');
            break;                        
        case 3:                 
            open_popup(d.id);                        
            //alert('Right mouse button pressed');
            break;
        default:
            //alert('You have a strange mouse :D '); //
    }
}
    

/* 
    Loads the skills partitions thanks to a json call
 */
function load_nodes(load_skill_id, main_depth, extra_parent_id) {
    if (debug) {
        console.log('Load nodes ----->');
        console.log('Loading skill id: '+load_skill_id+' with depth ' + main_depth);
        console.log('main_parent_id before: ' + main_parent_id);
    }

    //"Root partition" on click switch 
    if (main_parent_id && load_skill_id) {    
        skill_info = get_skill_info(load_skill_id);    
        if (skill_info && skill_info.extra) {
            main_parent_id = skill_info.extra.parent_id;
        } else {
            main_parent_id = 0;
        }
        console.log('main_parent_id after: ' + main_parent_id);        
    }

    if (load_skill_id && load_skill_id == 1)  {
        main_parent_id = 0;
    }    


    /** Define constants and size of the wheel */
    /** Total width of the wheel (also counts for the height) */
    var w = 900,
    h = w,
    r = w / 2,
    /** x/y positionning of the center of the wheel */
    x = d3.scale.linear().range([0, 2 * Math.PI]),
    y = d3.scale.pow().exponent(1.1).domain([0, 1]).range([0, r]),
    /** Padding in pixels before the string starts */
    padding = 3,    
    /** Levels to show */
    levels_to_show = 3;
    reduce_top = 1;

    /* Locate the #div id element */
    $("#skill_wheel").remove();
    $("#wheel_container").html('');
    $("#wheel_container").append('<div id="skill_wheel"></div>');

    var div = d3.select("#skill_wheel");

    /* Remove the image (make way for the dynamic stuff */
    div.select("img").remove();

    /* Append an element "svg" to the #vis section */
    var vis = div.append("svg")
    //.attr("class", "Blues")
    .attr("width", w + padding * 2)
    .attr("height", h + padding * 2)
    .append("g")
    .attr("transform", "translate(" + (r + padding) + "," + (r/reduce_top + padding) + ")");

    /* ...update translate variables to change coordinates of wheel's center */
    /* Add a small label to help the user */
    div.append("p")
    .attr("id", "intro")
    .text("{{ "ClickToZoom"|get_lang }}");

    /* Generate the partition layout */
    var partition = d3.layout.partition()
    .sort(null)
    /** Value here seems to be a calculation of the size of the elements
            depending on the level of depth they're at. Changing it makes
            elements pass over the limits of others... */
    //.size([1, 2])
    .value(function(d) {
        //return 5.8 - d.depth;
        //When having more than 4 children seems that the code above doesn't work
        return 1;
    });

    /* Generate an arc which will define the whole wheel context */
    var arc = d3.svg.arc()
    .startAngle(function(d) {
        return Math.max(0, Math.min(2 * Math.PI, x(d.x)));
    })
    .endAngle(function(d) {
        return Math.max(0, Math.min(2 * Math.PI, x(d.x + d.dx)));
    })
    .innerRadius(function(d) {
        return Math.max(0, d.y ? y(d.y) : d.y);
    })
    .outerRadius(function(d) {
        return Math.max(0, y(d.y + d.dy));
    });

    load_skill_condition = '';

    //First the $_GET value
    if (skill_to_load_from_get != 0) {
        load_skill_condition = 'skill_id=' + skill_to_load_from_get;
    }

    //The JS load
    if (load_skill_id != 0) { 
        load_skill_condition = 'skill_id=' + load_skill_id;            
    }

    d3.json("{{ wheel_url }}&main_depth="+main_depth+"&"+load_skill_condition, function(json) {

        /** Define the list of nodes based on the JSON */
        var nodes = partition.nodes({
            children: json                
        });

        /* Setting all skills */
        var path = vis.selectAll("path").data(nodes);

        /* Setting all texts */
        var text = vis.selectAll("text").data(nodes);    

        /* Setting icons */
        var icon = vis.selectAll("icon").data(nodes);

        /* Path settings */
        path.enter().append("path")
        .attr("id", function(d, i) {
            return "path-" + i;
        })
        .attr("d", arc)
        .attr("fill-rule", "evenodd")
        .attr("class", "skill_partition skill_background")
    //        .style("fill", colour)
        .style("fill", function(d) {
            return set_skill_style(d, 'fill', load_skill_id);
        })
        .style("stroke", function(d) {
            return set_skill_style(d, 'stroke');
        })
        .on("mouseover", function(d, i) {
            //$("#icon-" + i).show();                         
        })
        .on("mouseout", function(d, i) {
            //$("#icon-" + i).hide();
        })
        .on("contextmenu", function(d, i) {
            //Handles mouse clicks
            handle_mousedown_event(d, path, text, icon, arc, x, y, r, padding, vis);            
            //Blocks "right click menu"
            d3.event.preventDefault();       
            return false;
        })
        .on("mousedown", function(d, i) {                                    
        })        
        .on("click", function(d) {
            //Simple click
            handle_mousedown_event(d, path, text, icon, arc, x, y, r, padding, vis);
        });

        /*//Redefine the root
        path_zero = vis.selectAll("#path-0").on("mousedown", function(d){

               d = get_skill_info(extra_parent_id);
               d.parent_id = d.extra.parent_id;
               click_partition(d, path, text, icon, arc, x, y, r, padding, vis);
        });*/

        /* End setting skills */        

        /* Text settings */     
        var textEnter = text.enter().append("text")
        .style("fill-opacity", 1)
        .style("fill", function(d) {            
            return brightness(d3.rgb(d.color)) < 125 ? "#eee" : "#000";                
        })  
        .attr("text-anchor", function(d) {
            return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
        })
        .attr("rel", "tooltip_skill")
        .attr("title", function(d) {
            return d.name;
        })
        .attr("dy", ".2em")
        .attr("transform", function(d) {
            /** Get the text details and define the rotation and general position */
            var multiline = is_multiline(d.name); //(d.name || "").split(" ").length > 1,
            angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
            rotate = angle + (multiline ? -.5 : 0);
            return "rotate(" + rotate + ")translate(" + (y(d.y) + padding) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
        })
        .on("mouseover", function(d, i) {                    
            //$("#icon-" + i).show();                
        })
        .on("mouseout", function(d, i) {
            //$("#icon-" + i).hide();                
        })
        .on("contextmenu", function(d, i) {            
            handle_mousedown_event(d, path, text, icon, arc, x, y, r, padding, vis);  
            d3.event.preventDefault();
        })
        .on("mousedown", function(d, i) {
        })  
        .on("click", function(d) {
            handle_mousedown_event(d, path, text, icon, arc, x, y, r, padding, vis);              
        });

        /** Managing text - maximum two words */        
        var insert_two_words = false;

        textEnter.append("tspan")
        .attr("x", 0)
        .text(function(d) {
            if (d.depth && d.name.length > max_size_text_length) {
                if (d.depth) {                    
                    first_part = d.name.split(" ")[0];
                    second_part = d.name.split(" ")[1];                    
                    if (first_part.length >= max_size_text_length) {
                        insert_two_words = false;
                        return first_part.substring(0, max_size_text_length -3)  + ' ... ';
                    } else {
                        return first_part;
                    }                
                } else {
                    return "";
                }
            } else {
                insert_two_words = false;
                return d.depth ? d.name : "";
            }            
        });
        
        if (insert_two_words) {
            textEnter.append("tspan")
            .attr("x", 0)
            .attr("dy", "1em")
            .text(function(d) {
                return d.depth && d.name.length > max_size_text_length ? d.name.split(" ")[1] || "" : "";
            });
        }


        /* Icon settings */


        /*
        var icon_click = icon.enter().append("text")
        .style("fill-opacity", 1)
        .style("fill", function(d) {                
            //return "#000";
        })  
        .attr("text-anchor", function(d) {
            return x(d.x + d.dx / 2) > Math.PI ? "end" : "start";
        })
        .attr("dy", ".2em")            
        .attr("transform", function(d) {
            ///Get the text details and define the rotation and general position
            angle = x(d.x + d.dx / 2) * 180 / Math.PI - 90,
            rotate = angle;
            return "rotate(" + rotate + ")translate(" + (y(d.y) + padding +80) + ")rotate(" + (angle > 90 ? -180 : 0) + ")";
        })
        .on("click", function(d){
            open_popup(d);
        });

        icon_click.append("tspan")
        .attr("id", function(d, i) {            
            return "icon-" + i;
        })
        .attr("x", 0)
        .attr("display", 'none')            
        .text(function(d) {
            //return "Click";
        });*/
    });

    if (debug) {
        console.log('<------ End load nodes ----->');
    }
}


/* Skill AJAX calls */

function get_skill_info(my_id) {
    var skill = false;
    $.ajax({
        url: url+'&a=get_skill_info&id='+my_id,
        async: false,        
        success: function(json) {
            skill = jQuery.parseJSON(json);
            return skill;
        }
    });
    return skill;
}

function get_gradebook_info(id) {
    var item = false;
    $.ajax({
        url: url+'&a=get_gradebook_info&id='+id,
        async: false,        
        success: function(json) {
            item = jQuery.parseJSON(json);
            return item;
        }
    });    
    return item;
}

$(document).ready(function() {

});
</script>
default/skill/skill_wheel.tpl000064400000053014152004101310012317 0ustar00{% include 'default/skill/skill_wheel.js.tpl' %}

<script>

function add_skill(params) {
    $.ajax({
        async: false,
        url: url+'&a=add&'+params,
        success:function(my_id) {
            //Close dialog
            $("#dialog-form").dialog("close");                                      
        }                           
    });
}
    
/* Skill search input in the left menu */
function check_skills_sidebar() {
    //Selecting only selected skills
    $("#skill_id option:selected").each(function() {
        var skill_id = $(this).val();                
        if (skill_id != "" ) {
            $.ajax({
                url: "{{ url }}&a=skill_exists", 
                data: "skill_id="+skill_id,
//                async: false, 
                success: function(return_value) {                   
                    if (return_value == 0 ) {
                        alert("{{ 'SkillDoesNotExist'|get_lang }}");
                        
                        //Deleting select option tag
                        //$("#skill_id option[value="+skill_id+"]").remove();                    
                        $("#skill_id").empty();
                       
                        //Deleting holder
                        $("#skill_search .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });                        
                    } else {
                        $("#skill_id option[value="+skill_id+"]").remove();
                          
                        //Deleting holder
                        $("#skill_search .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });
                        
                        if ($('#skill_to_select_id_'+skill_id).length == 0) {
                            skill_info = get_skill_info(skill_id);                        
                            li = fill_skill_search_li(skill_id, skill_info.name);
                            $("#skill_holder").append(li); 
                        }                        

                    }
                },            
            });                
        }
    });
}

function fill_skill_search_li(skill_id, skill_name, checked) {
    checked_condition = '';
    if (checked == 1) {
        checked_condition = 'checked=checked';
    }    
    return '<li><input id="skill_to_select_id_'+skill_id+'" rel="'+skill_id+'" name="'+skill_name+'" class="skill_to_select" '+checked_condition+' type="checkbox" value=""> <a href="#" class="load_wheel" rel="'+skill_id+'">'+skill_name+'</a></li>';
}
 
function check_skills_edit_form() {
    //selecting only selected parents
    $("#parent_id option:selected").each(function() {
        var skill_id = $(this).val();        
        if (skill_id != "" ) {
            $.ajax({ 
                async: false,
                url: "{{ url }}&a=skill_exists", 
                data: "skill_id="+skill_id,
                success: function(return_value) {                    
                    if (return_value == 0 ) {                        
                        alert("{{ 'SkillDoesNotExist'|get_lang }}");
                        
                        //Deleting select option tag
                        $("#parent_id").find('option').remove();
                        //Deleting holder
                        $("#skill_row .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });                        
                    } else {
                        $("#parent_id").empty();                        
                        $("#skill_edit_holder").find('li').remove();
                        
                        //Deleting holder
                        $("#skill_row .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });
                        
                        skill = get_skill_info(skill_id);                        
                                                                         
                        $("#skill_edit_holder").append('<li class="bit-box" id="skill_option_'+skill_id+'"> '+skill.name+'</li>');
                        $("#parent_id").append('<option class="selected" selected="selected" value="'+skill_id+'"></option>');
                    }
                },            
            });                
        }
    });
}

function check_gradebook() {
    //selecting only selected users
    $("#gradebook_id option:selected").each(function() {
        var gradebook_id = $(this).val();
        
        if (gradebook_id != "" ) {
            $.ajax({ 
                url: "{{ url }}&a=gradebook_exists", 
                data: "gradebook_id="+gradebook_id,
                success: function(return_value) {                    
                    if (return_value == 0 ) {
                        alert("{{ 'GradebookDoesNotExist'|get_lang }}");                                                
                        //Deleting select option tag
                        $("#gradebook_id option[value="+gradebook_id+"]").remove();                        
                        //Deleting holder
                        $("#gradebook_row .holder li").each(function () {
                            if ($(this).attr("rel") == gradebook_id) {
                                $(this).remove();
                            }
                        });                        
                    } else {                        
                        //Deleting holder                        
                        $("#gradebook_row .holder li").each(function () {
                            if ($(this).attr("rel") == gradebook_id) {
                                $(this).remove();
                            }
                        });
                        
                        if ($('#gradebook_item_'+gradebook_id).length == 0) {
                            gradebook = get_gradebook_info(gradebook_id);                            
                            if (gradebook) {
                                $("#gradebook_holder").append('<li id="gradebook_item_'+gradebook_id+'" class="bit-box"> '+gradebook.name+' <a rel="'+gradebook_id+'" class="closebutton" href="#"></a></li>');
                            }                            
                        }
                    }
                },            
            });                
        }
    });
}

function delete_gradebook_from_skill(skill_id, gradebook_id) {
    $.ajax({
        url: url+'&a=delete_gradebook_from_skill&skill_id='+skill_id+'&gradebook_id='+gradebook_id,
        async: false,        
        success: function(result) {
            //if (result == 1) {
                $('#gradebook_item_'+gradebook_id).remove();
                $("#gradebook_id option").each(function() {
                    if ($(this).attr("value") == gradebook_id) {
                        $(this).remove();
                    }
                });
            //}
        }
    });
}

function return_skill_list_from_profile_search() {
    var skill_list = {};

    if ($("#profile_search li").length != 0) {            
        $("#profile_search li").each(function(index) {
            id = $(this).attr("id").split('_')[3];            
            if (id) {                         
                skill_list[index] = id;
            }
        }); 
    }
    return skill_list;
}

function submit_profile_search_form() {
    $("#skill_wheel").remove();
    
    var skill_list = return_skill_list_from_profile_search();

    if (skill_list.length != 0) {
        skill_list = { 'skill_id' : skill_list };
        skill_params = $.param(skill_list);        

        $.ajax({
            url: url+'&a=profile_matches&'+skill_params,
            async: false,        
            success: function (html) {
                //users = jQuery.parseJSON(users);
                $('#wheel_container').html(html);

            }
        });
    }
    //return skill;
}

function add_skill_in_profile_list(skill_id, skill_name) {
    if ($('#profile_match_item_'+skill_id).length == 0 ) {        
        $('#profile_search').append('<li class="bit-box" id="profile_match_item_'+skill_id+'">'+skill_name+'  <a rel="'+skill_id+'" class="closebutton" href="#"></a> </li>');        
    } else {            
        $('#profile_match_item_'+skill_id).remove();
    }
    toogle_save_profile_form();
}

function toogle_save_profile_form() {
    //Hiding showing the save this search    
    if ($('#profile_search li').length == 0) {
        $('#profile-options-container').hide();    
    } else {
        $('#profile-options-container').show();
    }
}

$(document).ready(function() {
    /* Skill search */ 
    
        //Tool tip (in exercises)
    var tip_options = {
        placement : 'right'
    }
    $('.tooltip_skill').tooltip(tip_options);
    
    /* Skill item list onclick  */
    $("#skill_holder").on("click", "input.skill_to_select", function() {
        skill_id = $(this).attr('rel');
        skill_name = $(this).attr('name');
        add_skill_in_profile_list(skill_id, skill_name);
    });
    
     /* URL link when searching skills */
    $("#skill_holder").on("click", "a.load_wheel", function() {
        skill_id = $(this).attr('rel');
        skill_to_load_from_get = 0;
        load_nodes(skill_id, main_depth);
    });
    
     /* URL link when searching skills */
    $("#skill_search").on("click", "a.load_root", function() {
        skill_id = $(this).attr('rel');
        skill_to_load_from_get = 0;
        load_nodes(skill_id, main_depth);
    });
    
    /*$("#skill_search").on("click", "a#clear_selection", function() {
        
    });*/
    
    
    /* Profile matcher */
            
    /* Submit button */
    $("#search_profile_form").submit(function() {
        submit_profile_search_form();
        return false;
    });
    
    $("#save_profile_form_button").submit(function() {         
        open_save_profile_popup();
        return false;
    });
    
    /* Close button in profile matcher items */
    $("#profile_search").on("click", "a.closebutton", function() {
        skill_id = $(this).attr('rel');     
        $('input[id=skill_to_select_id_'+skill_id+']').attr('checked', false);
        $('#profile_match_item_'+skill_id).remove();
        submit_profile_search_form();
        toogle_save_profile_form();
    });
    
    //Fill saved profiles list
    update_my_saved_profiles();
    
    /* Click in profile */
    $("#saved_profiles").on("click", "a.load_profile", function() {
        profile_id = $(this).attr('rel');        
        $.ajax({
           url: '{{ url }}&a=get_skills_by_profile&profile_id='+profile_id,
           success:function(json) {
               skill_list = jQuery.parseJSON(json); 
               
               $('#profile_search').empty();
               $('#skill_holder').empty();               
               jQuery.each(skill_list, function(index, skill_id) {                    
                    skill_info = get_skill_info(skill_id);                        
                    li = fill_skill_search_li(skill_id, skill_info.name, 1);
                    $("#skill_holder").append(li);
                    add_skill_in_profile_list(skill_id, skill_info.name);
               });               
               submit_profile_search_form();              
            }                           
        });        
    });
    
    
    /* Wheel skill popup form */
    
    /* Close button in gradebook select */
    $("#gradebook_holder").on("click", "a.closebutton", function() {
        gradebook_id = $(this).attr('rel');
        skill_id = $('#id').attr('value');         
        delete_gradebook_from_skill(skill_id, gradebook_id);        
    });    

    $("#skill_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_skills",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_skills_sidebar",
        filter_selected: true,
        newel: true
    });    
    
    $("#parent_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_skills",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_skills_edit_form",
        filter_selected: true,
        newel: true
    });    
    
    $("#gradebook_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_gradebooks",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_gradebook",
        filter_selected: true,
        newel: true
    });

    //Skill popup (edit, create child... )
    $("#dialog-form").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 600, 
        height  : 630
    });
    
    //Save search profile dialog
    $("#dialog-form-profile").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 500, 
        height  : 400
    });
        
    load_nodes(0, main_depth);
    
    function open_save_profile_popup() {
        $("#dialog-form-profile").dialog({
            buttons: {
                "{{ "Save"|get_lang }}" : function() {
                    var params = $("#save_profile_form").serialize();
                    var skill_list = return_skill_list_from_profile_search();                    
                    skill_list = { 'skill_id' : skill_list };
                    skill_params = $.param(skill_list);
        
                    $.ajax({
                        url: '{{ url }}&a=save_profile&'+params+'&'+skill_params,
                        success:function(data) {
                            if (data == 1 ) {
                                update_my_saved_profiles();
                                alert("{{ "Saved"|get_lang }}");
                            } else {
                                alert("{{ "Error"|get_lang }}");
                            }
                            
                            $("#dialog-form-profile").dialog("close");                            
                            $("#name").attr('value', '');
                            $("#description").attr('value', '');                             
                         }                           
                     });
                  }
            },
            close: function() {     
                $("#name").attr('value', '');
                $("#description").attr('value', '');                
            }
        });
        $("#dialog-form-profile").dialog("open");
    }
    
    function update_my_saved_profiles() {
        $.ajax({
           url: '{{ url }}&a=get_saved_profiles',
           success:function(data) {
               $("#saved_profiles").html(data);
            }                           
        });
    }

    /* Generated random colour */
    /*
    function colour(d) {
        
        if (d.children) {
            // There is a maximum of two children!
            var colours = d.children.map(colour),
            a = d3.hsl(colours[0]),
            b = d3.hsl(colours[1]);
            // L*a*b* might be better here...
            return d3.hsl((a.h + b.h) / 2, a.s * 1.2, a.levels_to_show / 1.2);
        }        
        return d.colour || "#fff";
    }*/
});
</script>

<div class="container-fluid">
    <div class="row-fluid">
        
        <div class="span3">
            <div class="well sidebar-nav-skill-wheel">
                <div class="page-header">
                    <h3>{{ 'Skills'|get_lang }}</h3>
                </div>
                
                <form id="skill_search" class="form-search">
                    <select id="skill_id" name="skill_id" />
                    </select>
                    <br /><br />
                    <div class="btn-group">
                        <a class="btn load_root" rel="0" href="#">{{ "SkillRoot"|get_lang }}</a>
                        <!-- <a id="clear_selection" class="btn">{{ "Clear"|get_lang }}</a> -->	
                    </div>
                    <ul id="skill_holder" class="holder holder_simple">
                    </ul>
                </form>
                
                <div class="page-header">
                    <h3>{{ 'ProfileSearch'|get_lang }}</h3>
                </div>
                {{ 'WhatSkillsAreYouLookingFor'|get_lang }}
                
                <ul id="profile_search" class="holder holder_simple">
                </ul>
                
                <form id="search_profile_form" class="form-search">
                    <input class="btn" type="submit" value="{{ "SearchProfileMatches"|get_lang }}">
                </form>
                
                <div id="profile-options-container" style="display:none">                
                    {{ 'IsThisWhatYouWereLookingFor'|get_lang }}
                    <form id="save_profile_form_button" class="form-search">
                        <input class="btn" type="submit" value="{{ "SaveThisSearch"|get_lang }}">
                    </form>                  
                </div>                
                 
                <div id="saved_profiles">
                </div>
                
                <div class="page-header">            
                    <h3>{{ "Legend"|get_lang }}</h3>                
                </div>
                <span class="label label-warning">{{ "SkillsYouCanLearn"|get_lang }}</span><br /><br />
                <span class="label label-important">{{ "SkillsSearchedFor"|get_lang }}</span><br /><br />
                <div><a class="btn btn-small" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a></div>
            </div>                
        </div>
            
        <div id="wheel_container" class="span9">
            <div id="skill_wheel">
                <img src="">
            </div>
        </div>
</div>

<div id="dialog-form" style="">
    <p class="validateTips"></p>
    <form id="add_item" class="form-horizontal"  name="form">
        <fieldset>
            <input type="hidden" name="id" id="id"/>
            <div class="control-group">            
                <label class="control-label" for="name">{{ 'Name' | get_lang }}</label>            
                <div class="controls">
                    <input type="text" name="name" id="name" class="span4" />             
                </div>
            </div>
            
            <div class="control-group">            
                <label class="control-label">{{ 'ShortCode' | get_lang }}</label>            
                <div class="controls">
                    <input type="text" name="short_code" id="short_code" class="span2" />             
                </div>
            </div>

             <div id="skill_row" class="control-group">            
                <label class="control-label" for="name">{{'Parent'|get_lang}}</label>            
                <div class="controls">
                    <select id="parent_id" name="parent_id" />
                    </select>
                    <ul id="skill_edit_holder" class="holder holder_simple">
                    </ul>
                </div>
            </div>
            
            <div id="gradebook_row" class="control-group">            
                <label class="control-label" for="name">{{'Gradebook'|get_lang}}</label>            
                <div class="controls">
                    <select id="gradebook_id" name="gradebook_id" multiple="multiple"/>
                    </select>             
                        
                    <ul id="gradebook_holder" class="holder holder_simple">
                    </ul>
                        
                    <span class="help-block">
                    {{ 'WithCertificate'|get_lang }}
                    </span>           
                </div>
            </div>
            
            <div class="control-group">            
                <label class="control-label" for="name">{{ 'Description'|get_lang }}</label>            
                <div class="controls">
                    <textarea name="description" id="description" class="span4" rows="7"></textarea>
                </div>
            </div>  
        </fieldset>
    </form>     
</div>
        
        
<div id="dialog-form-profile" style="display:none;">    
    <form id="save_profile_form" class="form-horizontal" name="form">       
        <fieldset>
            <div class="control-group">            
                <label class="control-label" for="name">{{"Name"|get_lang}}</label>            
                <div class="controls">
                    <input type="text" name="name" id="name" size="40" />             
                </div>
            </div>        
            <div class="control-group">            
                <label class="control-label" for="name">{{"Description"|get_lang}}</label>            
                <div class="controls">
                    <textarea name="description" id="description" class="span2"  rows="7"></textarea>
                </div>
            </div>  
        </fieldset>
    </form>    
</div>default/skill/skill_wheel_student.tpl000064400000026317152004101310014073 0ustar00{% include 'default/skill/skill_wheel.js.tpl' %}

<script>
 
/* Skill search input in the left menu */
function check_skills_sidebar() {
    //Selecting only selected skills
    $("#skill_id option:selected").each(function() {
        var skill_id = $(this).val();                
        if (skill_id != "" ) {
            $.ajax({
                url: "{{ url }}&a=skill_exists", 
                data: "skill_id="+skill_id,
//                async: false, 
                success: function(return_value) {                   
                    if (return_value == 0 ) {
                        alert("{{ 'SkillDoesNotExist'|get_lang }}");                                                
                        //Deleting select option tag
                        //$("#skill_id option[value="+skill_id+"]").remove();                    
                        $("#skill_id").empty();
                       
                        //Deleting holder
                        $("#skill_search .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });                        
                    } else {
                        $("#skill_id option[value="+skill_id+"]").remove();
                          
                        //Deleting holder
                        $("#skill_search .holder li").each(function () {
                            if ($(this).attr("rel") == skill_id) {
                                $(this).remove();
                            }
                        });
                        
                        if ($('#skill_to_select_id_'+skill_id).length == 0) {
                            skill_info = get_skill_info(skill_id);                        
                            li = fill_skill_search_li(skill_id, skill_info.name);
                            $("#skill_holder").append(li); 
                        }
                    }
                },            
            });                
        }
    });
}

function fill_skill_search_li(skill_id, skill_name, checked) {
    checked_condition = '';
    if (checked == 1) {
        checked_condition = 'checked=checked';
    }    
    return '<li><a id="skill_to_select_id_'+skill_id+'" href="#" class="load_wheel" rel="'+skill_id+'">'+skill_name+'</a></li>';
}

function load_skill_info(skill_id) {
    $.ajax({
        url: url+'&a=get_skill_course_info&id='+skill_id,
        async: false,        
        success: function(data) {            
            $('#skill_info').html(data);
            return data;
        }
    });
}

function load_my_skills() {
    $.ajax({
        url: url+'&a=get_user_skills&user_id='+{{ _u.user_id}},
        //async: false,        
        success: function(data) {            
            $('#my_skills').html(data);                
        }
    });        
}


$(document).ready(function() {
    /* Skill search */ 
    
    /* Skill item list onclick  */
    $("#skill_holder").on("click", "input.skill_to_select", function() {
        skill_id = $(this).attr('rel');
        skill_name = $(this).attr('name');
        add_skill_in_profile_list(skill_id, skill_name);
    });   
    
     /* URL link when searching skills */
    $("#skill_holder").on("click", "a.load_wheel", function() {
        skill_id = $(this).attr('rel');
        skill_to_load_from_get = 0;
        load_nodes(skill_id, main_depth);        
        load_skill_info(skill_id);
    });
    
     /* URL link when searching skills */
    $("#skill_search").on("click", "a.load_root", function() {
        skill_id = $(this).attr('rel');
        skill_to_load_from_get = 0;
        load_nodes(skill_id, main_depth);
    });
    
    /* When clicking in a course title */
    $("#skill_info").on("click", "a.course_description_popup", function() {
        course_code = $(this).attr('rel');        
        $.ajax({
            url: url+'&a=get_course_info_popup&code='+course_code,
            async: false,        
            success: function(data) {                
                $('#course_info').html(data);
                $("#dialog-course-info").dialog({
                     close: function() {     
                        $('#course_info').html('');                
                    }
                });
                $("#dialog-course-info").dialog("open");
            }
        });
    });
        
    
    /* Wheel skill popup form */
    
    /* Close button in gradebook select */
    $("#gradebook_holder").on("click", "a.closebutton", function() {
        gradebook_id = $(this).attr('rel');
        skill_id = $('#id').attr('value');         
        delete_gradebook_from_skill(skill_id, gradebook_id);        
    });    

    $("#skill_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_skills",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_skills_sidebar",
        filter_selected: true,
        newel: true
    });    
    
    $("#parent_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_skills",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_skills_edit_form",
        filter_selected: true,
        newel: true
    });    
    
    $("#gradebook_id").fcbkcomplete({
        json_url: "{{ url }}&a=find_gradebooks",
        cache: false,
        filter_case: false,
        filter_hide: true,
        complete_text:"{{ 'StartToType' | get_lang }}",
        firstselected: true,
        //onremove: "testme",
        onselect:"check_gradebook",
        filter_selected: true,
        newel: true
    });

    //Open dialog
    $("#dialog-form").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 600, 
        height  : 550
    });
    
    //Open dialog
    $("#dialog-course-info").dialog({
        autoOpen: false,
        modal   : true, 
        width   : 550, 
        height  : 250
    });    
        
    load_nodes(0, main_depth);
    
    load_my_skills();

    function open_popup(skill_id, parent_id) {
        //Cleaning selected        
        $("#gradebook_id").find('option').remove();        
        $("#parent_id").find('option').remove();
        
        $("#gradebook_holder").find('li').remove();
        $("#skill_edit_holder").find('li').remove();
                
        var skill = false;
        if (skill_id) {
            skill = get_skill_info(skill_id);
        }        
        
        var parent = false;
        if (parent_id) {
            parent = get_skill_info(parent_id);
        }
        
        if (skill) {
            var parent_info = get_skill_info(skill.extra.parent_id);
            
            $("#id").attr('value',   skill.id);
            $("#name").attr('value', skill.name);
            $("#short_code").attr('value', skill.short_code);                        
            $("#description").attr('value', skill.description);                
            
            //Filling parent_id                        
            $("#parent_id").append('<option class="selected" value="'+skill.extra.parent_id+'" selected="selected" >');            
            
            $("#skill_edit_holder").append('<li class="bit-box">'+parent_info.name+'</li>');
            
            //Filling the gradebook_id
            jQuery.each(skill.gradebooks, function(index, data) {                    
                $("#gradebook_id").append('<option class="selected" value="'+data.id+'" selected="selected" >');
                $("#gradebook_holder").append('<li id="gradebook_item_'+data.id+'" class="bit-box">'+data.name+' <a rel="'+data.id+'" class="closebutton" href="#"></a> </li>');    
            });            
            
            $("#dialog-form").dialog({
                buttons: {
                     "{{ "Edit"|get_lang }}" : function() {
                         var params = $("#add_item").find(':input').serialize();
                         add_skill(params);                     
                      },                                    
                      /*"{{ "Delete"|get_lang }}" : function() {
                      },*/
                      "{{ "CreateChildSkill"|get_lang }}" : function() {                          
                          open_popup(0, skill.id);

                      },
                      "{{ "AddSkillToProfileSearch"|get_lang }}" : function() {                          
                          add_skill_in_profile_list(skill.id, skill.name);
                      }
                },
                close: function() {     
                    $("#name").attr('value','');
                    $("#description").attr('value', '');
                    //Redirect to the main root
                    load_nodes(0, main_depth);
                                 
                }
            });
            
            $("#dialog-form").dialog("open");            
        }       
    }
});
</script>

<div class="container-fluid">
    <div class="row-fluid">
        
        <div class="span3">
            <div class="well sidebar-nav-skill-wheel ">
                
                <div class="page-header">
                    <h3>{{ 'MySkills'|get_lang }}</h3>                
                </div>
                
                <div id="my_skills">
                </div>
                
                
                <div class="page-header">
                    <h3>{{ 'GetNewSkills'|get_lang }}</h3>
                </div>
                
                <form id="skill_search" class="form-search">
                    <select id="skill_id" name="skill_id" />
                    </select>
                    <br /><br />
                    <div class="btn-group">
                        <a class="btn load_root" rel="0" href="#">{{ "SkillRoot"|get_lang }}</a>                        
                    </div>
                    <ul id="skill_holder" class="holder holder_simple">
                    </ul>
                </form>
                
                <div class="page-header">
                    <h3>{{ 'SkillInfo'|get_lang }}</h3>
                </div>                
                <div id="skill_info">
                </div>
                
                <div class="page-header">
                <h3>{{ "Legend"|get_lang }}</h3>
                </div>
                <span class="label label-info">{{ "SkillsYouAcquired"|get_lang }}</span><br />
                <span class="label label-warning">{{ "SkillsYouCanLearn"|get_lang }}</span><br />
                <span class="label label-important">{{ "SkillsSearchedFor"|get_lang }}</span><br /><br />
                <div><a class="btn btn-small" href="{{ _p.web }}user_portal.php">{{ "ReturnToCourseList"|get_lang }}</a></div>
            </div>                
        </div>
            
        <div id="wheel_container" class="span9">
            <div id="skill_wheel">
                <img src="">
            </div>
        </div>
</div>   
<div id="dialog-course-info" style="display:none;">        
    <div id="course_info">
    </div>    
</div>
default/skill/user_skills.tpl000064400000000513152004101310012350 0ustar00{% if skills is not null %}
<ul class="nav nav-list">
    {%for skill in skills %}        
        <li>
            <a rel="{{ skill.id}}" href="#">
                <span class="label label-info">
            {{ skill.name }}
                </span>
                </a>
        </li>        
    {% endfor %}
</ul>    
{% endif %}default/work/view.tpl000064400000000135152004101310010627 0ustar00<div class="page-header">
    <h2>{{ work.title}}</h2>
</div>

<p>
{{ work.description}}
</p>experimental/layout/layout_2_col.tpl000064400000001101152004101310013646 0ustar00{extends file="default/layout/main.tpl"}


{block name="header"}
	{include file="default/layout/main_header.tpl"}
{/block}

{block name=body}
	<div id="maincontent" class="maincontent">
		{$home_page_block}
		{$plugin_courses_block}
		{$content}
		{$announcements_block}
	</div>
	
	<div>	
		{$login_block}
		{$profile_block}	
		{$account_block}
		{$teacher_block}
		{$navigation_course_links}
		{$plugin_courses_right_block}
		{$reservation_block}
		{$search_block}
		{$classes_block}
	</div>
{/block}

{block name=footer}
	{include file="default/layout/footer.tpl"}	
{/block}
experimental/layout/layout_1_col.tpl000064400000000414152004101310013653 0ustar00{extends file="default/layout/main.tpl"}

{block name=header}
	{include file="default/layout/header.tpl"}	
{/block}

{block name=body}
	<h1>My experimental Template!!</h1>	
	{$content}
{/block}

{block name=footer}
	{include file="default/layout/header.tpl"}	
{/block}experimental/layout/layout_3_col.tpl000064400000001204152004101310013653 0ustar00{extends file="default/layout/main.tpl"}

{block name=header}
	{include file="default/layout/header.tpl"}	
{/block}

{block name=body}
	<h1>{"WelcomeUserXToTheSiteX"|get_lang} </h1>	
	<div id="left_col">		
		{$announcements_block}
	</div>
		
	<div id="center_col">
		{$content}
	</div>	
	<div id="right">
		{$user_complete_name}
			
		{$login_block}		
		{$profile_block}			
		{$account_block}		
		{$teacher_block}
		{$notice_block}
		{$navigation_course_links}
		{$plugin_courses_right_block}
		{$reservation_block}
		{$search_block}
		{$classes_block}
	</div>
{/block}

{block name=footer}
	{include file="default/layout/footer.tpl"}	
{/block}

Hacked By AnonymousFox1.0, Coded By AnonymousFox