Ignore:
Timestamp:
Apr 30, 2013 2:34:02 PM (11 years ago)
Author:
mike
Message:

rewrite kss actions via jquery ajax; remove all related to kss resources

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonetabs/branches/nokss/quintagroup/plonetabs/browser/templates/plonetabs.pt

    r3077 r3680  
    158158 
    159159</div> 
    160  
     160<script> 
     161  (function(a){var b,c=a();a.fn.sortable=function(d){var e=String(d);return d=a.extend({connectWith:!1},d),this.each(function(){if(/^enable|disable|destroy$/.test(e)){var f=a(this).children(a(this).data("items")).attr("draggable",e=="enable");e=="destroy"&&f.add(this).removeData("connectWith items").off("dragstart.h5s dragend.h5s selectstart.h5s dragover.h5s dragenter.h5s drop.h5s");return}var g,h,f=a(this).children(d.items),i=a("<"+(/^ul|ol$/i.test(this.tagName)?"li":"div")+' class="sortable-placeholder">');f.find(d.handle).mousedown(function(){g=!0}).mouseup(function(){g=!1}),a(this).data("items",d.items),c=c.add(i),d.connectWith&&a(d.connectWith).add(this).data("connectWith",d.connectWith),f.attr("draggable","true").on("dragstart.h5s",function(c){if(d.handle&&!g)return!1;g=!1;var e=c.originalEvent.dataTransfer;e.effectAllowed="move",e.setData("Text","dummy"),h=(b=a(this)).addClass("sortable-dragging").index()}).on("dragend.h5s",function(){b.removeClass("sortable-dragging").show(),c.detach(),h!=b.index()&&f.parent().trigger("sortupdate",{item:b}),b=null}).not("a[href], img").on("selectstart.h5s",function(){return this.dragDrop&&this.dragDrop(),!1}).end().add([this,i]).on("dragover.h5s dragenter.h5s drop.h5s",function(e){return!f.is(b)&&d.connectWith!==a(b).parent().data("connectWith")?!0:e.type=="drop"?(e.stopPropagation(),c.filter(":visible").after(b),!1):(e.preventDefault(),e.originalEvent.dataTransfer.dropEffect="move",f.is(this)?(d.forcePlaceholderSize&&i.height(b.outerHeight()),b.hide(),a(this)[i.index()<a(this).index()?"after":"before"](i),c.not(i).detach()):!c.is(this)&&!a(this).children(d.items).length&&(c.detach(),a(this).append(i)),!1)})})}})(jQuery); 
     162</script> 
     163 
     164<script> 
     165//Functions declaration 
     166 
     167  function sortableList() { 
     168    console.log('sort changed'); 
     169    var formData = {}; 
     170 
     171    //?TODO formData.ajax_request = "edit_moveact" 
     172 
     173    formData.ajax_request = true; 
     174    var liIds = $('#tabslist li').map(function(i,n) { 
     175      return $(n).attr('id'); 
     176    }).get().join('&'); 
     177    cat_name = $('#select_category').val(); 
     178    formData.cat_name  = cat_name; 
     179    formData.actions  = liIds; 
     180    formData.edit_moveact  = 'Move Action'; 
     181    //formData.push({ name: 'edit.moveact', value: 'Move Action'}); 
     182    $.ajax({ 
     183      type:'POST',  
     184      url: '@@plonetabs-controlpanel',  
     185      data: formData,  
     186      success: function(response) { 
     187            var json = JSON.parse(response) 
     188            console.log("response from server: "); 
     189            console.log(json); 
     190 
     191            if (json.status_code === 200){ 
     192                console.log('display success messages');  
     193            } 
     194            else{ 
     195                console.log('display error messages'); 
     196            } 
     197      } 
     198    }); 
     199  } 
     200 
     201  function toggleCollapsible(el, collapse) { 
     202    collapse = typeof collapse !== 'undefined' ? collapse : 'default'; 
     203 
     204    var node = el.parent(".collapseAdvanced");  
     205 
     206    if(collapse!=='default'){ 
     207      if (collapse==true){ 
     208          console.log("removeClass expandedBlock; addClass collapsedBlock"); 
     209          node.removeClass('expandedBlock'); 
     210          node.addClass('collapsedBlock'); 
     211      }  
     212      else{ 
     213          console.log("removeClass collapsedBlock; addClass expandedBlock"); 
     214          node.removeClass('collapsedBlock'); 
     215          node.addClass('expandedBlock'); 
     216      } 
     217    } 
     218    else{ 
     219      if (node.hasClass('collapsedBlock')){ 
     220          console.log("removeClass collapsedBlock; addClass expandedBlock"); 
     221          node.removeClass('collapsedBlock'); 
     222          node.addClass('expandedBlock'); 
     223      }  
     224      else{ 
     225          console.log("removeClass expandedBlock; addClass collapsedBlock"); 
     226          node.removeClass('expandedBlock'); 
     227          node.addClass('collapsedBlock'); 
     228      } 
     229    } 
     230 
     231  } 
     232 
     233  function startupActions() { 
     234    console.log('running basic methods'); 
     235    $(".add-controls input").addClass('allowMultiSubmit'); 
     236    $(".edit-controls input").addClass('allowMultiSubmit'); 
     237    $(".collapseAdvanced").removeClass('expandedBlock').addClass('collapsedBlock'); 
     238  } 
     239</script> 
     240 
     241<script> 
     242  $(document).ready(function() { 
     243    console.log('document ready'); 
     244    $("#plonetabs_form").addClass('kssTabsActive'); 
     245    startupActions() 
     246  }); 
     247</script> 
     248 
     249 
     250<script> 
     251/*CLIENTS METHODS*/ 
     252 
     253//titleWrapper 
     254    $("#tabslist .titleWrapper").live("click", function() { 
     255        console.log("#tabslist .titleWrapper clicked"); 
     256        ($(this).closest('li')).addClass('editing'); 
     257    }); 
     258 
     259//collapse 
     260    $(".collapseAdvanced .headerAdvanced").live("click", function(event) { 
     261        console.log(".collapseAdvanced .headerAdvanced clicked"); 
     262        toggleCollapsible($(this)); 
     263    }); 
     264</script> 
     265 
     266<script>  
     267/*AJAX METHODS*/ 
     268 
     269//save(edit)  
     270  $('#tabslist .editsave').live("click", function(event) { 
     271      console.log('.editsave clicked '); 
     272      event.preventDefault(); 
     273      var formData = $(this).closest('form').serializeArray(); 
     274      formData.push({ name: "edit_save", value: this.value }); 
     275 
     276      //?TODO formData.ajax_request = "edit_save" 
     277 
     278      formData.push({ name: "ajax_request", value: true }); 
     279      $.ajax({ 
     280        type:'POST',  
     281        url: '@@plonetabs-controlpanel',  
     282        data: formData,  
     283        success: function(response) { 
     284            var json = JSON.parse(response) 
     285            console.log("response from server: "); 
     286            console.log(json); 
     287            if (json.status_code === 200){ 
     288                console.log('display success messages');   
     289 
     290                $(this).closest('li').replaceWith(json.content); 
     291            } 
     292            else{ 
     293                console.log('display error messages'); 
     294 
     295                //if 'id' in errors or 'available_expr' in errors or 'url_expr' in errors: 
     296                toggleCollapsible($(this).find('.headerAdvanced'), false); 
     297            } 
     298        } 
     299    }); 
     300  }); 
     301 
     302//reset(cancel)  
     303  $('#tabslist .editcancel').live("click", function(event) { 
     304      console.log('.editcancel clicked '); 
     305      event.preventDefault(); 
     306      var formData={}; 
     307      formData.ajax_request = true; 
     308 
     309      //?TODO formData.ajax_request = "edit_cancel" 
     310 
     311      formData.edit_cancel = 'Cancel'; 
     312      var parentFormSelect = $(this).closest('li'); 
     313      formData.orig_id = parentFormSelect.find('.editform input[name="orig_id"]').val(); 
     314      formData.category = parentFormSelect.find('.editform input[name="category"]').val(); 
     315      $.ajax({ 
     316        type:'POST',  
     317        url: '@@plonetabs-controlpanel',  
     318        data: formData,  
     319        success: function(response) { 
     320            var json = JSON.parse(response) 
     321            console.log("response from server: "); 
     322            console.log(json); 
     323 
     324            if (json.status_code === 200){ 
     325                console.log('display success messages'); 
     326                parentFormSelect.replaceWith(json.content); 
     327                 
     328            } 
     329            else{ 
     330                console.log('display error messages'); 
     331            } 
     332        } 
     333               
     334  }); 
     335}); 
     336 
     337//delete 
     338  $('#tabslist .delete').live("click", function(event) { 
     339      console.log('.delete clicked '); 
     340      event.preventDefault(); 
     341      var formData={}; 
     342      formData.ajax_request = true; 
     343 
     344      //?TODO formData.ajax_request = "edit_delete" 
     345 
     346      formData.edit_delete = 'Delete'; 
     347      var parentFormSelect = $(this).closest('li'); 
     348      formData.orig_id = parentFormSelect.find('.editform input[name="orig_id"]').val(); 
     349      formData.category = parentFormSelect.find('.editform input[name="category"]').val(); 
     350      $.ajax({ 
     351        type:'POST',  
     352        url: '@@plonetabs-controlpanel',  
     353        data: formData,  
     354        success: function(response) { 
     355            var json = JSON.parse(response) 
     356            console.log("response from server: "); 
     357            console.log(json); 
     358            if (json.status_code === 200){ 
     359                console.log('display success messages'); 
     360                parentFormSelect.remove() 
     361            } 
     362            else{ 
     363                console.log('display error messages'); 
     364            } 
     365             
     366        } 
     367               
     368  }); 
     369}); 
     370 
     371//visibility 
     372  $('#tabslist input.visibility').live("click", function(event) { 
     373      var formData={}; 
     374      formData.ajax_request = true; 
     375      console.log('#tabslist input.visibility clicked '); 
     376      formData.tabslist_visible = 'Set visibillity'; 
     377      var parentFormSelect = $(this).closest('li'); 
     378      formData.orig_id = parentFormSelect.find('.editform input[name="orig_id"]').val(); 
     379      formData.category = parentFormSelect.find('.editform input[name="category"]').val(); 
     380      formData.visibility = $(this).is(":checked"); 
     381 
     382      $.ajax({ 
     383        type:'POST',  
     384        url: '@@plonetabs-controlpanel',  
     385        data: formData,  
     386        success: function(response) { 
     387            var json = JSON.parse(response) 
     388            console.log("response from server: "); 
     389            console.log(json); 
     390 
     391 
     392            if (json.status_code === 200){ 
     393                console.log('display success messages'); 
     394                 
     395                if (formData.visibility === true){ 
     396                    parentFormSelect.removeClass("invisible"); 
     397                } 
     398                else{ 
     399                    parentFormSelect.addClass("invisible"); 
     400                } 
     401            } 
     402            else{ 
     403                console.log('display error messages'); 
     404            } 
     405        } 
     406               
     407  }); 
     408}); 
     409 
     410//changing category 
     411  $('#select_category').change(function(event) { 
     412        var formData={}; 
     413        formData.ajax_request = true; 
     414        console.log('select_category changed '); 
     415        formData.category = $(this).val(); 
     416        formData.category_change = 'Change'; 
     417        $.ajax({ 
     418          type: 'POST',  
     419          url:  '@@plonetabs-controlpanel',  
     420          data: formData,  
     421          success: function(response) { 
     422              var json = JSON.parse(response) 
     423              console.log(json); 
     424              if (json.status_code === 200){ 
     425                  console.log('display success messages'); 
     426                  $('form[name=addaction_form] input[name=category]').text($('#select_category').val()); 
     427                  $('#tabslist').html(json.actionslist); 
     428                  $('#autogeneration_section').html(json.section); 
     429                  $('#plonetabs-form-title').text(json.title); 
     430 
     431                  $('#addaction').removeClass('adding'); 
     432                  toggleCollapsible($('form[name=addaction_form] .headerAdvanced'), true); 
     433 
     434                  //Sorting lists 
     435                  $('#tabslist').unbind(); 
     436                  $('#tabslist').sortable().bind('sortupdate', function(){sortableList()}); 
     437 
     438                  //Running startupActions 
     439                  startupActions(); 
     440              } 
     441              else{ 
     442                  console.log('display error messages'); 
     443              } 
     444          } 
     445        }); 
     446  }); 
     447</script> 
     448 
     449<script>  
     450//portal_tabs methods 
     451 
     452//visibility 
     453  $('#roottabs .visibility').live("click", function(event) { 
     454      var formData={}; 
     455      formData.ajax_request = true; 
     456      console.log('#roottabs .visibility clicked '); 
     457      formData.roottabs_visible = 'Visibillity'; 
     458      var parentFormSelect = $(this).closest('li'); 
     459      formData.orig_id = parentFormSelect.attr('id'); 
     460      formData.visibility = $(this).is(":checked"); 
     461      $.ajax({ 
     462        type:'POST',  
     463        url: '@@plonetabs-controlpanel',  
     464        data: formData,  
     465        success: function(response) { 
     466            var json = JSON.parse(response) 
     467            console.log("response from server: "); 
     468            console.log(json); 
     469            if (json.status_code === 200){ 
     470                console.log('display success messages'); 
     471                $('#portal-globalnav').load(' #portal-globalnav>*'); 
     472                if (formData.visibility === true){ 
     473                    parentFormSelect.removeClass("invisible"); 
     474                } 
     475                else{ 
     476                    parentFormSelect.addClass("invisible"); 
     477                } 
     478                 
     479            } 
     480            else{ 
     481                console.log('display error messages'); 
     482            } 
     483        } 
     484               
     485  }); 
     486}); 
     487 
     488//General func for toggleGeneratedTabs and nonfolderish_tabs request  
     489  function sendRequest(field_name, checked_status){ 
     490    var formData={}; 
     491    formData.ajax_request = true; 
     492    formData.field = field_name; 
     493    formData.generated_tabs = checked_status; 
     494    $.ajax({ 
     495      type:'POST',  
     496      url: '@@plonetabs-controlpanel',  
     497      data: formData,  
     498      success: function(response) { 
     499          var json = JSON.parse(response) 
     500          console.log("response from server: "); 
     501          console.log(json); 
     502          if (json.status_code === 200){ 
     503              $('#roottabs').html(json.content); 
     504              $('#portal-globalnav').load(' #portal-globalnav>*'); 
     505              console.log('display success messages'); 
     506          } 
     507          else{ 
     508              console.log('display error messages'); 
     509          } 
     510      }      
     511    }); 
     512  } 
     513 
     514//toggleGeneratedTabs 
     515  $('#generated_tabs').live("click", function() { 
     516      console.log('#generated_tabs clicked '); 
     517      var field_name = 'disable_folder_sections'; 
     518      var checked_status = $(this).is(":checked"); 
     519      sendRequest(field_name, checked_status); 
     520  }); 
     521 
     522//nonfolderish_tabs 
     523  $('#nonfolderish_tabs').live("click", function() { 
     524      console.log('#nonfolderish_tabs clicked '); 
     525      var field_name = 'disable_nonfolderish_sections'; 
     526      var checked_status = $(this).is(":checked"); 
     527      sendRequest(field_name, checked_status); 
     528  }); 
     529</script> 
     530 
     531 
     532 
     533<script>  
     534//Add new action methods 
     535 
     536//focus 
     537    $("#actname").live("focus", function() { 
     538        console.log("#actname on focus"); 
     539        $('#addaction').addClass('adding'); 
     540    }); 
     541 
     542//cancel 
     543  $('#buttoncancel').live("click", function(event) { 
     544      console.log('#buttoncancel clicked '); 
     545      event.preventDefault(); 
     546      $('#addaction').removeClass('adding'); 
     547      toggleCollapsible($('form[name=addaction_form] .headerAdvanced'), true); 
     548      //('#kssPortalMessage').css("display", "none"); 
     549  }); 
     550 
     551//add 
     552  //TODO: add #addaction:submit event processing 
     553  $('#buttonadd').live("click", function(event) { 
     554      console.log('#buttonadd clicked '); 
     555      event.preventDefault(); 
     556      var formData = $(this).closest('form').serializeArray(); 
     557      formData.push({ name: "add_add", value: this.value }); 
     558      formData.push({ name: "ajax_request", value: true }); 
     559      formData.push({ name: "cat_name", value: $('#select_category').val() }); 
     560 
     561      $.ajax({ 
     562        type:'POST',  
     563        url: '@@plonetabs-controlpanel',  
     564        data: formData,  
     565        success: function(response) { 
     566          var json = JSON.parse(response) 
     567          console.log("response from server: "); 
     568          console.log(json); 
     569          if (json.status_code === 200){ 
     570            console.log('display success messages'); 
     571 
     572            $("#tabslist").append(json.content)     
     573            $("addaction").removeClass("adding"); 
     574            toggleCollapsible($('form[name=addaction_form] .headerAdvanced'), true); 
     575 
     576            //TODO 
     577            //self.kss_blur(ksscore.getHtmlIdSelector('actname')) 
     578 
     579          } 
     580          else{ 
     581            console.log('display error messages'); 
     582 
     583            //TODO 
     584            //if 'id' in errors or 'available_expr' in errors: 
     585            toggleCollapsible($('form[name=addaction_form] .headerAdvanced'), false); 
     586             
     587             
     588          } 
     589        } 
     590    }); 
     591  }); 
     592</script> 
    161593</div> 
    162594 
Note: See TracChangeset for help on using the changeset viewer.