<!DOCTYPE html>
<html>

  <head>
    <script data-require="angularjs@1.5.7" data-semver="1.5.7" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body>
  <div ng-app="myApp">
  <div id="alarms" ng-controller="alarmColumnsController">
      <div>
          <h3>Alarm Columns</h3>
          <ul class="alarmColumnOptions" ng-repeat="alarmOptions in alarmColumns track by $index">
              <li><label><input type="checkbox" name="alarmOptions.columnName" ng-model="alarmOptions.value" ng-change="setAlarmColumns(alarmColumns)"> {{alarmOptions.columnName}}</label></li>
          </ul>
      </div>
  </div>
  </div>
</body>

</html>
// Code goes here
var myApp = angular.module('myApp',[]).controller('alarmColumnsController', ['$scope', function($scope) {

var initialAlarmColumns = [{
                    columnName: "Alarm",
                    value: true
                }, {
                    columnName: "Description",
                    value: true
                }, {
                    columnName: "Acknowledged by",
                    value: false
                }];

            if (localStorage.getItem('alarmColumns') === null) {
                localStorage.setItem('alarmColumns', JSON.stringify(initialAlarmColumns));
            }
            
            $scope.alarmColumns = JSON.parse(localStorage.getItem('alarmColumns'));

            $scope.setAlarmColumns = function(columnsChecked) {
                localStorage.setItem('alarmColumns', JSON.stringify(columnsChecked));
            };
        }]);
/* Styles go here */

.alarmColumnOptions{
  list-style-type: none;
}