forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // XXX: Should I do crazy SN.X.Y.Z.A namespace instead?
 | |
| var SN_WHITELIST = SN_WHITELIST || {};
 | |
| 
 | |
| SN_WHITELIST.updateButtons = function () {
 | |
|    $("ul > li > a.remove_row").show();
 | |
|    $("ul > li > a.add_row").hide();
 | |
| 
 | |
|     var lis = $('ul > li > input[name^="username[]"]');
 | |
|     if (lis.length === 1) {
 | |
|         $("ul > li > a.remove_row").hide();
 | |
|     } else {
 | |
|         $("ul > li > a.remove_row:first").show();
 | |
|     }
 | |
|     $("ul > li > a.add_row:last").show();
 | |
| };
 | |
| 
 | |
| SN_WHITELIST.resetRow = function (row) {
 | |
|     $("input", row).val('');
 | |
|     // Make sure the default domain is the first selection
 | |
|     $("select option:first", row).val();
 | |
|     $("a.remove_row", row).show();
 | |
| };
 | |
| 
 | |
| SN_WHITELIST.addRow = function () {
 | |
|     var row = $(this).closest("li");
 | |
|     var newRow = row.clone();
 | |
|     $(row).find('a.add_row').hide();
 | |
|     SN_WHITELIST.resetRow(newRow);
 | |
|         $(newRow).insertAfter(row).show("blind", "fast", function () {
 | |
|             SN_WHITELIST.updateButtons();
 | |
|         });
 | |
| };
 | |
| 
 | |
| SN_WHITELIST.removeRow = function () {
 | |
|     var that = this;
 | |
| 
 | |
|     $("#confirm-dialog").dialog({
 | |
|         buttons : {
 | |
|             "Confirm" : function () {
 | |
|                 $(this).dialog("close");
 | |
|                 $(that).closest("li").hide("blind", "fast", function () {
 | |
|                     $(this).remove();
 | |
|                     SN_WHITELIST.updateButtons();
 | |
|                 });
 | |
|             },
 | |
|             "Cancel" : function () {
 | |
|                 $(this).dialog("close");
 | |
|             }
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     if ($(this).closest('li').find(':input[name^=username]').val()) {
 | |
|         $("#confirm-dialog").dialog("open");
 | |
|     } else {
 | |
|         $(that).closest("li").hide("blind", "fast", function () {
 | |
|             $(this).remove();
 | |
|             SN_WHITELIST.updateButtons();
 | |
|         });
 | |
|     }
 | |
| };
 | |
| 
 | |
| $(document).ready(function () {
 | |
|     $("#confirm-dialog").dialog({
 | |
|         autoOpen: false,
 | |
|         modal: true
 | |
|     });
 | |
| 
 | |
|     $(document).on('click', '.add_row', SN_WHITELIST.addRow);
 | |
|     $(document).on('click', '.remove_row', SN_WHITELIST.removeRow);
 | |
| 
 | |
|     SN_WHITELIST.updateButtons();
 | |
| });
 |