params as function overwrite original data instead of append
This commit is contained in:
		@@ -444,6 +444,81 @@
 | 
			
		||||
           e.remove();    
 | 
			
		||||
           start();  
 | 
			
		||||
        }, timeout);                     
 | 
			
		||||
      });        
 | 
			
		||||
      });   
 | 
			
		||||
      
 | 
			
		||||
      
 | 
			
		||||
    asyncTest("should submit all required params", function () {
 | 
			
		||||
        var e = $('<a href="#" data-pk="1" data-url="post-resp.php">abc</a>').appendTo(fx).editable({
 | 
			
		||||
             name: 'username',
 | 
			
		||||
             params: {
 | 
			
		||||
                q: 2 
 | 
			
		||||
             },
 | 
			
		||||
             ajaxOptions: {
 | 
			
		||||
                dataType: 'json'  
 | 
			
		||||
             },
 | 
			
		||||
             success: function(resp) {   
 | 
			
		||||
                 equal(resp.dataType, 'json', 'dataType ok');
 | 
			
		||||
                 equal(resp.data.pk, 1, 'pk ok');
 | 
			
		||||
                 equal(resp.data.name, 'username', 'name ok');
 | 
			
		||||
                 equal(resp.data.value, newText, 'value ok');
 | 
			
		||||
                 equal(resp.data.q, 2, 'additional params ok');
 | 
			
		||||
             } 
 | 
			
		||||
          }),  
 | 
			
		||||
          newText = 'cd<e>;"'
 | 
			
		||||
 | 
			
		||||
        e.click()
 | 
			
		||||
        var p = tip(e);
 | 
			
		||||
 | 
			
		||||
        ok(p.find('input[type=text]').length, 'input exists')
 | 
			
		||||
        p.find('input').val(newText);
 | 
			
		||||
        p.find('form').submit(); 
 | 
			
		||||
        
 | 
			
		||||
        setTimeout(function() {
 | 
			
		||||
           e.remove();    
 | 
			
		||||
           start();  
 | 
			
		||||
        }, timeout);             
 | 
			
		||||
        
 | 
			
		||||
      });
 | 
			
		||||
      
 | 
			
		||||
    asyncTest("params as function", function () {
 | 
			
		||||
        var e = $('<a href="#" data-pk="1" data-url="post-params-func.php">abc</a>').appendTo(fx).editable({
 | 
			
		||||
             name: 'username',
 | 
			
		||||
             params: function(params) {
 | 
			
		||||
                 ok(this === e[0], 'scope is ok');
 | 
			
		||||
                 equal(params.pk, 1, 'params in func already have values (pk)');
 | 
			
		||||
                 return $.extend(params, {q: 2, pk: 3});
 | 
			
		||||
             },
 | 
			
		||||
             ajaxOptions: {
 | 
			
		||||
                 headers: {"myHeader": "123"}
 | 
			
		||||
             } 
 | 
			
		||||
          }),  
 | 
			
		||||
          newText = 'cd<e>;"'
 | 
			
		||||
 | 
			
		||||
          $.mockjax({
 | 
			
		||||
              url: 'post-params-func.php',
 | 
			
		||||
              response: function(settings) {
 | 
			
		||||
                 equal(settings.dataType, undefined, 'dataType undefined (correct)');
 | 
			
		||||
                 equal(settings.data.pk, 3, 'pk ok');
 | 
			
		||||
                 equal(settings.data.name, 'username', 'name ok');
 | 
			
		||||
                 equal(settings.data.value, newText, 'value ok');
 | 
			
		||||
                 equal(settings.data.q, 2, 'additional params ok');
 | 
			
		||||
              }
 | 
			
		||||
          });         
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
        e.click()
 | 
			
		||||
        var p = tip(e);
 | 
			
		||||
 | 
			
		||||
        ok(p.find('input[type=text]').length, 'input exists')
 | 
			
		||||
        p.find('input').val(newText);
 | 
			
		||||
        p.find('form').submit(); 
 | 
			
		||||
        
 | 
			
		||||
        setTimeout(function() {
 | 
			
		||||
           e.remove();    
 | 
			
		||||
           start();  
 | 
			
		||||
        }, timeout);             
 | 
			
		||||
        
 | 
			
		||||
      });          
 | 
			
		||||
           
 | 
			
		||||
          
 | 
			
		||||
}(jQuery));  
 | 
			
		||||
@@ -211,79 +211,6 @@ $(function () {
 | 
			
		||||
        
 | 
			
		||||
      });      
 | 
			
		||||
       
 | 
			
		||||
   
 | 
			
		||||
      asyncTest("should submit all required params", function () {
 | 
			
		||||
        var e = $('<a href="#" data-pk="1" data-url="post-resp.php">abc</a>').appendTo(fx).editable({
 | 
			
		||||
             name: 'username',
 | 
			
		||||
             params: {
 | 
			
		||||
                q: 2 
 | 
			
		||||
             },
 | 
			
		||||
             ajaxOptions: {
 | 
			
		||||
                dataType: 'json'  
 | 
			
		||||
             },
 | 
			
		||||
             success: function(resp) {   
 | 
			
		||||
                 equal(resp.dataType, 'json', 'dataType ok');
 | 
			
		||||
                 equal(resp.data.pk, 1, 'pk ok');
 | 
			
		||||
                 equal(resp.data.name, 'username', 'name ok');
 | 
			
		||||
                 equal(resp.data.value, newText, 'value ok');
 | 
			
		||||
                 equal(resp.data.q, 2, 'additional params ok');
 | 
			
		||||
             } 
 | 
			
		||||
          }),  
 | 
			
		||||
          newText = 'cd<e>;"'
 | 
			
		||||
 | 
			
		||||
        e.click()
 | 
			
		||||
        var p = tip(e);
 | 
			
		||||
 | 
			
		||||
        ok(p.find('input[type=text]').length, 'input exists')
 | 
			
		||||
        p.find('input').val(newText);
 | 
			
		||||
        p.find('form').submit(); 
 | 
			
		||||
        
 | 
			
		||||
        setTimeout(function() {
 | 
			
		||||
           e.remove();    
 | 
			
		||||
           start();  
 | 
			
		||||
        }, timeout);             
 | 
			
		||||
        
 | 
			
		||||
      });
 | 
			
		||||
      
 | 
			
		||||
    asyncTest("params as function", function () {
 | 
			
		||||
        var e = $('<a href="#" data-pk="1" data-url="post-params-func.php">abc</a>').appendTo(fx).editable({
 | 
			
		||||
             name: 'username',
 | 
			
		||||
             params: function(params) {
 | 
			
		||||
                 ok(this === e[0], 'scope is ok');
 | 
			
		||||
                 equal(params.pk, 1, 'params in func already have values (pk)');
 | 
			
		||||
                 return { q: 2, pk: 3 };
 | 
			
		||||
             },
 | 
			
		||||
             ajaxOptions: {
 | 
			
		||||
                 headers: {"myHeader": "123"}
 | 
			
		||||
             } 
 | 
			
		||||
          }),  
 | 
			
		||||
          newText = 'cd<e>;"'
 | 
			
		||||
 | 
			
		||||
          $.mockjax({
 | 
			
		||||
              url: 'post-params-func.php',
 | 
			
		||||
              response: function(settings) {
 | 
			
		||||
                 equal(settings.dataType, undefined, 'dataType undefined (correct)');
 | 
			
		||||
                 equal(settings.data.pk, 3, 'pk ok');
 | 
			
		||||
                 equal(settings.data.name, 'username', 'name ok');
 | 
			
		||||
                 equal(settings.data.value, newText, 'value ok');
 | 
			
		||||
                 equal(settings.data.q, 2, 'additional params ok');
 | 
			
		||||
              }
 | 
			
		||||
          });         
 | 
			
		||||
          
 | 
			
		||||
          
 | 
			
		||||
        e.click()
 | 
			
		||||
        var p = tip(e);
 | 
			
		||||
 | 
			
		||||
        ok(p.find('input[type=text]').length, 'input exists')
 | 
			
		||||
        p.find('input').val(newText);
 | 
			
		||||
        p.find('form').submit(); 
 | 
			
		||||
        
 | 
			
		||||
        setTimeout(function() {
 | 
			
		||||
           e.remove();    
 | 
			
		||||
           start();  
 | 
			
		||||
        }, timeout);             
 | 
			
		||||
        
 | 
			
		||||
      });    
 | 
			
		||||
              
 | 
			
		||||
     asyncTest("ajaxOptions", function () {
 | 
			
		||||
        var e = $('<a href="#" data-pk="1" data-url="post-options.php">abc</a>').appendTo(fx).editable({
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user