JSFiddle - React, Tailwind, and code Playground

by Ari Viinikainen

HTML

<script src="https://bramp.github.io/js-sequence-diagrams/js/webfont.js"></script>
<script src="https://bramp.github.io/js-sequence-diagrams/js/snap.svg-min.js"></script>
<script src="https://bramp.github.io/js-sequence-diagrams/js/underscore-min.js"></script>
<script src="https://bramp.github.io/js-sequence-diagrams/js/sequence-diagram-min.js"></script>
<a id="ftp" href="javascript:void(0);">FTP kommunikaatio</a>
<a id="aa" href="javascript:void(0);">Aloita alusta</a> Theme:
<select class="theme" style="margin-left:0.1cm;">
  <option value="simple" selected>Simple</option>
  <option value="hand">Hand drawn</option>
</select>
<div id="diagram"></div>

CSS

a {
  background-color: #FFFFCC;
  width: 100px;
  font-size: 1em;
  border: 2px solid black;
  border-radius: 5px;
  float: top;
  margin-left: 0.1cm;
}

JavaScript

// FTP
var text = "";
var protokollaTila = -1;
var hosts = {
  "h1": "FTP_Asiakas",
  "h2": "FTP_Palvelin"
};
var port = [21, 52247, 52828];
var porttiInd = 0;
var synArray = new Array("Avataanko yhteys? (TCP SYN)", "Avataan yhteys, ok? (TCP SYNACK)", "OK! (TCP ACK)");
var ftpArray = new Array("220 FTP Palvelin valmis", "USER anonymous", "331 Please specify the password.", "PASS anonymous", "230 Login successful.", "EPSV", "229 Extended Passive Mode Entered (|||52247|)", "LIST", "150 Here comes the directory listing.", "", "226 Directory send OK.", "QUIT", "221 Goodbye.");
var finArray = new Array("Suljetaanpa yhteys (TCP FIN)", "Suljetaan yhteys (TCP FIN)", "Okei! (TCP ACK)", "Ookoo! (TCP ACK)");
var listArray = new Array("-rw-r--r--    1 ftp      ftp           528 Nov 01  2007 README",
  "-rw-r--r--    1 ftp      ftp           561 Oct 03  2012 index.html",
  "drwxr-xr-x   41 ftp      ftp          4096 Mar 06 15:38 pub");
$(document).ready(function() {
  alusta();
  piirra();
  $('a').click(function(event) {
    var tila = this.id;
    switch (tila) {
      case "ftp":
        switch (protokollaTila) {
          case -1:
            $('#ftp').fadeOut(500);

            $('#ftp').fadeIn(500, function() {
              $('#ftp').html('Seuraava viesti');
            });
            protokollaTila += 1;
            // no break -> flow through
          case 0:
          case 2:
            piirra_nuoli("h1", "h2", synArray[protokollaTila], port[porttiInd]);
            if (porttiInd === 0) {
              protokollaTila += 1;
            } else if (porttiInd === 1 && protokollaTila === 2) {
              protokollaTila = 10;
              porttiInd = 0;
            } else {
              protokollaTila += 1;
            }
            break;
          case 1:
            piirra_nuoli("h2", "h1", synArray[protokollaTila], port[porttiInd]);
            protokollaTila += 1;
            break;
          case 3:
          case 5:
          case 7:
          case 11:
     ...