SightMap js IFrame API

Engrain-Knock Demo

by Jacob Pearlstein

HTML

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>SightMap JavaScript IFrame API Example</title>
    <script src="https://sightmap.com/embed/api.js">


    </script>
    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css">

  </head>

  <body>
    <div class="margin">
      <div class="head-container">
        <div class="title">
          <div class="textbox">
            Welcome to SightMap
          </div>
        </div>
      </div>
      <div class="row mt-5">
        <div class="col-md-4">
          <button class="btn btn-primary mb-2" id="disable-ui"><span id="disable-ui-button-text">Disable</span> All UI</button>
          <button class="btn btn-primary mb-2" id="disable-unit-list"><span id="disable-unit-list-button-text">Disable</span> Unit List</button>
          <button class="btn btn-primary mb-2" id="disable-filters"><span id="disable-filters-button-text">Disable</span> Filters</button>
          <button class="btn btn-primary mb-2" id="get-floor"><span id="get-floor-button">Get</span> Floor</button>

        </div>
        <div class="col-md-4">
          <div class="input-group mb-2">
            <input class="form-control" id="locate-unit-number" placeholder="Locate by unit number" />
            <div class="input-group-append">
              <button class="btn btn-success" type="button" id="locate-unit-number-button">Locate Unit</button>
            </div>
          </div>
          <!-- START SET UNIT NUMBERS MATCHES -->
          
            <div class="input-group mb-2">
              <input class="form-control" id="display-unit-numbers" placeholder="Set Unit Number Matches (i.e. P2-101,P1-100,A-103,102)" />
              <div class="input-group-append">
                <button class="btn btn-success" type="button"...

CSS

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  margin: 0 auto;
  padding: 0;
  font-family: open sans, sans-serif;
}

.margin {
  margin: 2.5%;
  height: 80vh;
}

.head-container {
  width: 95%;
  margin: auto;
}

nav.container {
  display: block;
  background-color: #333333;
  text-align: center;
  margin: auto;
}

.sightmap-container {
  height: 100%;
  min-height: 500px;
  align-items: center;
  justify-content: center;
}

.title {
  background-color: hsl(211, 38%, 61%);
  color: white;
  margin: auto;
  height: 15%;
}

.textbox {
  text-align: center;
  line-height: 233%;
  font-size: 40pt;
}

.button-list {
  display: flex;
  flex-direction: row;
}

JavaScript

$('document').ready(function() {
  // Create a new embed instance, providing the IFrame id value:
  var embed = new SightMap.Embed('sightmap');

  embed.on('ready', function() {
    console.log('hello world');
  });


  // Knock - Outbound Link IFrame API
  embed.on('outbound.knock.click', function(event) {
    console.log(event);
  });
	
	// Other usage examples
$("#get-floor").on('click', function(event) {
    embed.getFloor(function(id) {
      console.log('Active Floor ID:', id);
    })
  })

  $("#set-floor-button").on('click', function(event) {
    var value = $("#set-floor").val()
    embed.setFloor(value)
  })

  $("#display-unit-numbers-button").on('click', function(event) {
    var value = $("#display-unit-numbers").val().split(",")
    embed.setUnitNumberMatches(value)
  })

  $("#locate-unit-number-button").on('click', function(event) {
    var value = $("#locate-unit-number").val()
    embed.locateUnitByUnitNumber(value)
  })

  var state = {
    disable_ui: true,
    disable_filters: true,
    disable_unit_list: true,
  }

  $('#disable-ui').on('click', function() {
    console.log('Disable / Enable All');
    if (state.disable_ui) {
      embed.disableUI(['unitList', 'filters', 'floorSelection']);
    } else {
      embed.disableUI([]);
    }
    state.disable_ui = !state.disable_ui;
    $("#disable-ui-button-text").text(state.disable_ui ? 'Disable' : 'Enable');
  });

  $('#disable-filters').on('click', function() {
    console.log('Disable / Enable Filters');
    if (state.disable_filters) {
      embed.disableUI(['filters']);
    } else {
      embed.disableUI([]);
    }
    state.disable_filters = !state.disable_filters;
    $("#disable-filters-button-text").text(state.disable_filters ? 'Disable' : 'Enable');
  });

  $('#disable-unit-list').on('click', function() {
    console.log('Disable / Enable Unit List');
    if (state.disable_unit_list) {
      embed.disableUI(['unitList']);
    } else {
      embed.disableUI([]);
    }
   ...