|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>
|
|
|
|
|
Kara
|
|
|
|
|
</title>
|
|
|
|
|
<link href="https://bootswatch.com/4/slate/bootstrap.min.css" rel="stylesheet" type="text/css"/>
|
|
|
|
|
<link href="app.css" rel="stylesheet" type="text/css"/>
|
|
|
|
|
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, shrink-to-fit=no"
|
|
|
|
|
name="viewport">
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<div class="container-fluid" id="kara">
|
|
|
|
|
<h5 id="kara-banner">
|
|
|
|
|
<div class="float-right">
|
|
|
|
|
<div class="btn btn-sm btn-secondary" @click="scrollDown()" data-toggle="modal" data-target="#addModal">
|
|
|
|
|
<i>+</i>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="btn btn-sm btn-secondary" @click="scrollDown()">
|
|
|
|
|
<i class="fas fa-chevron-down"></i>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
{{ this.name }}
|
|
|
|
|
</h5>
|
|
|
|
|
|
|
|
|
|
<div id="chat-box">
|
|
|
|
|
<template v-for="message in messages">
|
|
|
|
|
<div class="message ai-message float-left" v-if="message.ai">
|
|
|
|
|
{{ message.body }}
|
|
|
|
|
<br/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="message user-message float-right" v-else="">
|
|
|
|
|
{{ message.body }}
|
|
|
|
|
<br/>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<div class="message ai-message typing float-left" v-if="isTyping">
|
|
|
|
|
<div class="spinner-grow text-secondary" role="status">
|
|
|
|
|
<span class="sr-only">
|
|
|
|
|
Loading...
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="spinner-grow text-secondary" role="status">
|
|
|
|
|
<span class="sr-only">
|
|
|
|
|
Loading...
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="spinner-grow text-secondary" role="status">
|
|
|
|
|
<span class="sr-only">
|
|
|
|
|
Loading...
|
|
|
|
|
</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="chatbox-wrapper">
|
|
|
|
|
<input
|
|
|
|
|
autofocus="true"
|
|
|
|
|
class="form-control"
|
|
|
|
|
id="chatinput"
|
|
|
|
|
type="text"
|
|
|
|
|
v-model="chatbox"
|
|
|
|
|
v-on:keyup.enter="sendMessage()"
|
|
|
|
|
required autofocus>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-labelledby="addModal" aria-hidden="true">
|
|
|
|
|
<div class="modal-dialog" role="document">
|
|
|
|
|
<div class="modal-content">
|
|
|
|
|
<div class="modal-header">
|
|
|
|
|
<h5 class="modal-title">Add</h5>
|
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
|
</button>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-body">
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="includeAll">Message must include all search-terms</label>
|
|
|
|
|
<input type="checkbox" id="includeALl" v-model="addModal.includeAll">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="keywords">Keywords (separated with comma)</label>
|
|
|
|
|
<input type="text" id="keywords" v-model="addModal.keywords" class="form-control">
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<label for="responses">Responses</label>
|
|
|
|
|
<template v-for="(key, responseOption) in addModal.responses">
|
|
|
|
|
<input type="text" v-model="addModal.responses[responseOption]" class="form-control response-input">
|
|
|
|
|
</template>
|
|
|
|
|
<div class="float-right">
|
|
|
|
|
<button class="btn-sm btn-success" @click="addResponseToInput">+</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
|
|
|
|
<button type="button" class="btn btn-primary" data-dismiss="modal" @click="addNewResponseContainer">Add</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="https://kit.fontawesome.com/b54a4cceff.js" crossorigin="anonymous"></script>
|
|
|
|
|
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
|
|
|
|
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
|
|
|
|
|
<script src="https://code.jquery.com/jquery-3.5.1.js">
|
|
|
|
|
</script>
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">
|
|
|
|
|
</script>
|
|
|
|
|
<script src="app.js">
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|