Test Table - Dialog

Select and remove contacts

by M Greene

HTML

<link rel="stylesheet" href="//cdn.datatables.net/1.10.11/css/jquery.dataTables.min.css">
<script src="//cdn.datatables.net/1.10.11/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/select/1.1.2/css/select.dataTables.min.css">
<script src="https://cdn.datatables.net/select/1.1.2/js/dataTables.select.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.1.2/css/buttons.dataTables.min.css">
<script src="https://cdn.datatables.net/buttons/1.1.2/js/dataTables.buttons.min.js"></script>
<label class="myLabel">Select contacts to remove</label>
<div class="container">
  <div class="rg-formHeader">
    Contact List
  </div>

  <table id="myTable" class="stripe hover">
    <thead><tr>
      <th class="head-label">Last Name</th>
      <th class="head-label">First Name</th>
      <th class="head-label">Email Address</th>
      <th class="head-label">ID</th></tr>
    </thead>
    <tbody>
      <tr>
        <td>Bridges</td>
        <td>Jeff</td>
        <td>[email protected]</td>
        <td>1</td>
      </tr>
      <tr>
        <td>Buscemi</td>
        <td>Steve</td>
        <td>[email protected]</td>
        <td>2</td>
      </tr>
      <tr>
        <td>Moore</td>
        <td>Julianne</td>
        <td>[email protected]</td>
        <td>3</td>
      </tr>
      <tr>
        <td>Turturro</td>
        <td>John</td>
        <td>[email protected]</td>
        <td>4</td>
      </tr>
      <tr>
        <td>Goodman</td>
        <td>John</td>
        <td>[email protected]</td>
        <td>5</td>
      </tr>
      <tr>
        <td>Gilmore</td>
        <td>Jimmie</td>
        <td>[email protected]</td>
        <td>6</td>
      </tr>
      <tr>
        <td>Elliott</td>
        <td>Sam</td>
        <td>[email protected]</td>
        <td>7</td>
      </tr>
    </tbody>
  </table>
</div>

<button class="submitBtn" >
  Remove contact(s)
</button>

CSS

.container {
  width: 550px;
  /* border: 1px solid black; */
}

.head-label {
  text-align: left;
}

.myLabel {
  text-weight: bold;
}

.rg-formHeader {
  font-family: Arial, Helvetica, sans-serif;
  color: #FFFFFF;
  background: #003b71;
  text-decoration: none;
  font-variant: normal;
  font-weight: bold;
  text-align: left;
  font-size: 16px;
  padding-left: 5px;
  padding-top: 3px;
  padding-bottom: 3px;
}

.xx {
  background-color: #003b71;
  color: #FFFFFF;
  font-weight: bold;
  font-size: 15px;
  padding-left: 10px;
  padding-right: 10px;
  border-radius: 10px;
  text-decoration: none;
  outline: none;
}

.removeBtn, .submitBtn {
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #003a71), color-stop(1, #003a71));
	background:-moz-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-webkit-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-o-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-ms-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:linear-gradient(to bottom, #003a71 5%, #003a71 100%);
	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#003a71', endColorstr='#003a71',GradientType=0);
	background-color:#003a71;
	-moz-border-radius:15px;
	-webkit-border-radius:15px;
	border-radius:15px;
	display:inline-block;
	cursor:pointer;
	color:#ffffff;
	font-family:Arial;
	font-size:14px;
	padding:7px 25px;
	text-decoration:none;
	text-shadow:0px 1px 0px #e1e2ed;
}
.removeBtn:hover, , .submitBtn:hover {
	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #003a71), color-stop(1, #003a71));
	background:-moz-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-webkit-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-o-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:-ms-linear-gradient(top, #003a71 5%, #003a71 100%);
	background:linear-gradient(to bottom, #003a71 5%, #003a71...

JavaScript

var recipIds = [];

$(document).ready(function() {
  var table = $("#myTable").DataTable({
    dom: "lfrtpB",
    scrollY: "200px",
    scrollCollapse: true,
    paging: false,
    searching: false,
    select: {
      style: "multi",
      item: "rows"
    },
    columnDefs: [{
      targets: [3],
      visible: false,
      searchable: false
    }],
		buttons: [{
			extend: "selected", 
			className: "removeBtn",
			text: "Remove contact(s)",
			action: function ( e, dt, node, config ) {
				var selectedRows = dt.rows(".selected");
				alert(selectedRows.data().length + " rows selected");
				
				selectedRows.remove().draw();
			}
		}]
  });

  generateEventListeners(table);
	$(".container").dialog();
});

function generateEventListeners(table) {
  $(".submitBtn").on("click", function() {
    var selectedIds = [];
		$.each(table.rows(".selected").data(), function(key, data) {
			selectedIds.push(data[3]);
		});

    alert("Selected Ids: " + selectedIds.join());
    table.rows(".selected").remove().draw();
  });
}