You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							343 lines
						
					
					
						
							14 KiB
						
					
					
				
			
		
		
	
	
							343 lines
						
					
					
						
							14 KiB
						
					
					
				
 | 
						|
{{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}}&action=add_category" class="btn new_folder" title="{{'AddCategory'|get_lang}}">
 | 
						|
                <i class="size-32 icon-new-folder"></i>
 | 
						|
            </a>
 | 
						|
            <a href="{{root}}&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 btn-default" title="{{'DeleteAll'|get_lang}}">
 | 
						|
                <i class="size-32 icon-delete-all"></i>
 | 
						|
            </a>
 | 
						|
            <a href="{{root}}&action=import_csv" class="btn import_csv" title="{{'ImportCSV'|get_lang}}">
 | 
						|
                <i class="size-32 icon-import-csv"></i>
 | 
						|
            </a>
 | 
						|
            <a href="{{root}}&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 btn-default" title="{{'ShowAll'|get_lang}}">
 | 
						|
            <i class="size-32 icon-expand"></i>
 | 
						|
        </a>
 | 
						|
        <a href="javascript:void(0)" onclick="collapse_all();return false;" class="btn btn-default" 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}}&action=go&id={{link.id}}&c_id={{link.c_id}}">
 | 
						|
                    <img alt="{{'Links'|get_lang}}" src="../../main/img/link.gif" />        
 | 
						|
                </a>
 | 
						|
                <a class="title" target="{{link.target}}" href="{{root}}&action=go&id={{link.id}}&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;"> </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}}&action=edit_link&id={{link.id}}&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}}&action=edit_category&id={{category.id}}&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}}&action=view&id={{category.id}}&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}}&action=go&id={{link.id}}&c_id={{link.c_id}}">
 | 
						|
                                <img alt="{{'Links'|get_lang}}" src="../../main/img/link.gif" />        
 | 
						|
                            </a>
 | 
						|
                            <a class ="title" target="{{link.target}}" href="{{root}}&action=go&id={{link.id}}&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;"> </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}}&action=edit_link&id={{link.id}}&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> |