$(document).ready(function(){ if($.urlParam('embeded') =="1"){ $('.navbar,.resources-options,#sketch').hide(); $('.container-fluid,.col-md-9,.col-md-3').css('padding','0'); $('.list-group-item,#resource').css('padding','3px').css('border-radius','0px'); $('.jumbotron').css('border-radius','0'); $('.row').css('margin','0'); $('#resources').before('
Télécharger
'); $('.col-md-3,.col-md-9').attr('style','width:20%;float:left;padding:0;'); $('.col-md-9').attr('style','width:70%;float:left;padding:0;'); } if($.urlParam('sidebar') =="0"){ $('#resourceMenu').hide(); $('#resourceContent').removeClass('col-md-9').addClass('col-md-12'); } var init = 'init_'+$.page(); if(window[init]!=null) window[init](); if($.page()=='' ) init_index(); Dropzone.autoDiscover = false; }); function init_plugin(){ search_plugin(function(){ $('.toggle').change(function(){ var input = $('input',this); var value = input.prop('checked'); $.action({ action : 'change_plugin_state', plugin : $(this).closest('li').attr('data-id'), state:value?1:0 },function(r){}, function(r){ input.prop('checked',!value); }); }); }); } function init_index(){ search_sketch(); $('#label').enter(function(){ create_sketch(); }); $('#importJsonSketch').dropzone({ url : 'action.php?action=import_sketch', complete : function(useless){ if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) { search_sketch(); } }, success: function(file, response){ if(response.errors.length>0) alert(response.errors.join(',')); }, sending : function(file, xhr, formData){ formData.append('from','file'); } }); } //COMPONENT function init_component(){ search_component(); /* $('#imageUpload').upzone({ url : 'action.php?action=upload_component_image', id : $('#sketch').attr('data-id'), success : function(server){ $('#imageUpload').attr('src',server); } }); */ $('#imageUpload').dropzone({ url : 'action.php?action=upload_component_image', success : function(useless,server){ if(server.error != null) return alert(server.error); $('#imageUpload').attr('src',server.thumb); }, sending : function(file, xhr, formData){ formData.append('id', $('#sketch').attr('data-id')); } }); $('#label').autocomplete({ source : 'http://hack.idleman.fr/action.php?action=find_component', minLength: 4, select: function( event, ui ) { $.setForm('#editComponent',ui.item.value); $('#imageUpload').attr('src',ui.item.value.image); return false; } }).data("uiAutocomplete")._renderItem = function (ul, item) { return $("
  • ") .data("item.autocomplete", item) .append(" " + item.label + "") .appendTo(ul); }; }; /*PLUGINS*/ // SEARCH function search_plugin(callback){ $('#plugins').fill({action:'search_plugin'},function(){ if(callback!=null) callback(); }); } /*COMPONENTS*/ function save_component(){ var data = $.getForm('#editComponent'); if($('#imageUpload').attr('src').substring(0,10)=='data:image') data.image = $('#imageUpload').attr('src'); $.action(data,function(r){ search_component(); }); } function search_component(){ $('#components').fill({action:'search_component'}); } function edit_component(element){ var data = {action : 'edit_component'}; $('#editComponent input').val(''); $('#imageUpload').attr('src','img/default_image.png'); if(element!=null){ var line = $(element).closest('tr'); data.id = line.attr('data-id'); } $.action(data,function(r){ $('#editComponent').modal('show'); $.setForm('#editComponent',r); $('#imageUpload').attr('src',r.image); $('#editComponent').attr('data-id',r.id); }); } function delete_component(element){ if(!confirm('Êtes vous sûr de vouloir supprimer ça?')) return; var line = $(element).closest('tr'); $.action({action : 'delete_component',id : line.attr('data-id')},function(r){ line.remove(); }); } //SKETCH function init_sketch(){ search_resources(function(){ var resource = $.hashData('resource'); resource = resource == '' ? $('#resources a:visible():eq(1)').attr('data-id') : resource; select_resource(resource); }); $('#importResource i').dropzone({ url : 'action.php?action=import_resource', complete : function(useless,server){ if (this.getUploadingFiles().length === 0 && this.getQueuedFiles().length === 0) { search_resources(); } }, sending : function(file, xhr, formData){ formData.append('id', $('#sketch').attr('data-id')); } }); } function search_sketch(){ $('#sketchs').fill({action:'search_sketch'}); } function create_sketch(){ $.action($.getForm('#editSketch'),function(r){ window.location = 'sketch.php?id='+r.id; }); } function import_sketch(){ var data = $.getForm('#importSketch'); data.from = 'url'; $.action(data,function(){ search_sketch(); }); } function delete_sketch(element){ if(!confirm('Êtes vous sûr de vouloir supprimer ça?')) return; var line = $(element).closest('tr'); $.action({action : 'delete_sketch',id : line.attr('data-id')},function(r){ line.remove(); }); } function save_sketch_title(element){ $.action({action : 'save_sketch_title',label : $(element).val(),id:$('#sketch').attr('data-id')}); } function toggle_share_sketch(element){ var button = $(element).find('i'); var nextState = !button.hasClass('fa-eye'); $.action({action:'toggle_share_sketch',state:(nextState?1:0),id:$('#sketch').attr('data-id')},function(){ button.removeClass('fa-eye').removeClass('fa-eye-slash'); button.addClass((nextState?'fa-eye':'fa-eye-slash')); $(element).attr('title','Rendre '+(nextState?'Privé':'Public')); }); } function toggle_embed_sketch(){ $('#embedModal').modal('show'); get_embeded_code(); } function get_embeded_code(){ var url = window.location.protocol+'//'+window.location.host+window.location.pathname+window.location.search; url+= '&embeded=1'; if(!$('#enableSideBar').prop('checked')) url+= '&sidebar=0'; url+= window.location.hash; var html = 'Voir en taille réelle
    '; html += ''; $('#embedModal textarea').val(html); $("#embedModal textarea").focus(function() { var $this = $(this); $this.select(); $this.mouseup(function() { $this.unbind("mouseup"); return false; }); }); } //RESOURCE function add_resource(selected){ $('#resources a').removeClass('active'); $('#editResourceMeta').modal('show'); if(selected!=null) $('#editResourceMeta select').val(selected); $('#label').val('').focus(); $('#resource').attr('data-id',''); } function save_resource(){ var data = $.getForm('#editResourceMeta'); data.sketch = $('#sketch').attr('data-id'); $.action(data,function(r){ $('#editResourceMeta input').val(''); $('#editResourceMeta').attr('data-id',''); search_resources(select_resource(r.id)); }); } function search_resources(callback){ var id = $('#sketch').attr('data-id'); $('#resources').fill({id:id,action:'search_resources'},function(){ if(callback!=null) callback(); }); } function edit_resource(element,event){ event.stopPropagation(); var line = $(element).closest('a'); $.action({action:'edit_resource',id:line.attr('data-id')},function(r){ $('#editResourceMeta').modal('show'); $.setForm('#editResourceMeta',r); $('#editResourceMeta').attr('data-id',r.id); }); } function delete_resource(element,event){ event.stopPropagation(); if(!confirm('Êtes vous sûr de vouloir supprimer ça?')) return; var line = $(element).closest('a'); $.action({action : 'delete_resource',id : line.attr('data-id')},function(r){ line.remove(); }); } function select_resource(id){ $.hashData({resource:id}); load_resource(); } function load_resource(){ var id = $.hashData('resource'); var line = $('[data-id="'+id+'"]'); if(line.attr('data-id')==null) return; $('.preloader').show(); $('#resource p').html(''); $.action({action:'edit_resource',id:line.attr('data-id')},function(r){ $('.preloader').hide(); $('#resources a').removeClass('active'); line.addClass('active'); $('#resource').attr('data-id',r.id); $('#resource h2').html(r.label); $('#resource p').html(r.content); $('#resource textarea:eq(0)').focus(); if(r.upload !=null){ var data = {}; data.url = r.upload.url; data.success = function(useless,r){ if(r.errors && r.errors.length!=0){ alert('Erreur : '+r.errors.join(',')); }else{ eval(r.upload.callback); } } data.sending = function(file, xhr, formData){ formData.append('id', $('#resource').attr('data-id')); } data.createImageThumbnails = false; $(r.upload.element).dropzone(data); } if(r.code != null){ var editor = CodeMirror.fromTextArea($('#resource > p > textarea:eq(0)').get(0),r.code); console.log(editor); editor.on("change", function() { var data ={height:800}; var wrap = editor.getWrapperElement(); var approp = editor.getScrollInfo().height > data.height ? data.height+"px" : "auto"; if (wrap.style.height != approp) { wrap.style.height = approp; editor.refresh(); } }); editor.on("blur", function(cm,obj){ var data = {}; data.content = cm.getValue(); data.action='save_resource_content'; data.id = $('#resource').attr('data-id'); $.action(data,function(r){ }); }); } if(r.callback !=null){ eval(r.callback); } }); } /*FILE*/ function init_file(){ search_file(); }; function search_file(){ $('#files').fill({action:'search_file',id:$('#resource').attr('data-id')}); } function delete_file(element){ if(!confirm('Êtes vous sûr de vouloir supprimer ça?')) return; var line = $(element).closest('tr'); $.action({action : 'delete_file',resource : $('#resource').attr('data-id'),id : line.attr('data-id')},function(r){ line.remove(); }); } /*PART*/ function init_part(){ $('#label').autocomplete({ source : 'action.php?action=autocomplete_part', minLength: 2, select: function( event, ui ) { save_part(ui.item.value); return false; } }).data("uiAutocomplete")._renderItem = function (ul, item) { return $("
  • ") .data("item.autocomplete", item) .append(" " + item.label + "
    "+item.value.brand+"") .appendTo(ul); }; search_part(); }; function search_part(){ $('#parts').fill({action:'search_part',id:$('#resource').attr('data-id')}); } function save_part(model){ var data = $.getForm('#partForm'); if (model!=null) data.model = model.id; data.resource = $('#resource').attr('data-id'); $.action(data,function(r){ search_part(); clear_part(); }); } function clear_part(){ $('#partForm input').val(''); $('#partForm').attr('data-id',''); } /* function edit_part(element){ var line = $(element).closest('tr'); $.action({action:'edit_part',id:line.attr('data-id')},function(r){ $.setForm('#partForm',r); $('#partForm').attr('data-id',r.id); }); } */ function delete_part(element){ if(!confirm('Êtes vous sûr de vouloir supprimer ça?')) return; var line = $(element).closest('tr'); $.action({action : 'delete_part',id : line.attr('data-id')},function(r){ line.remove(); }); }