<label for="code">
Numeric code:
</label>
- <input id="code" type="text" autocomplete="off" placeholder="(Leave blank for random)" />
+ <input id="code" type="number" min="0" max="4294967295" autocomplete="off" placeholder="(Leave blank for random)" />
</div>
</div>
</form>
</p>
- <div id="images">
+ <div id="images" style="display: none">
</div>
<audio loop="" src="/zombo_words.mp3" type="audio/mpeg"></audio>
<script>
var socket = io();
- const name = document.querySelector("#name");
+ const name_input = document.querySelector("#name");
const name_dialog = document.querySelector("#name-dialog");
const images = document.querySelector("#images");
const zombo_form = document.querySelector("#zombo-form");
});
name_dialog.addEventListener('close', () => {
- socket.emit('set-name', name.value);
+ socket.emit('set-name', name_input.value);
});
socket.on('comment', function(comment) {
socket.on('inform-name', (name) => {
console.log("Received inform-name event: " + name);
- name.value = name;
+ name_input.value = name;
});
socket.on('reset', () => {
figure.appendChild(img);
const figcaption = document.createElement('figcaption');
- const caption_text = document.createTextNode(`${image.prompt} (${image.code})`);
+ const caption_text = document.createTextNode(`${image.prompt} (${image.code}) `);
figcaption.appendChild(caption_text);
+
+ const reuse_button = document.createElement('button');
+ reuse_button.appendChild(document.createTextNode("Reuse"));
+ figcaption.appendChild(reuse_button);
+
+ reuse_button.addEventListener('click', () => {
+ prompt.value = image.prompt;
+ window.scrollTo(0,0);
+ });
+
figure.appendChild(figcaption);
const dl_comments = document.createElement('dl');
comment_input.addEventListener('focus', () => {
/* Do nothing if name is already set. */
- if (name.value)
+ if (name_input.value)
return;
/* Otherwise, bring up the modal dialog to set the name. */
/* Re-display the form and hide spinner now that generation is over. */
clearTimeout(spinner_timeout);
hide_spinner();
+ /* Also display all of the images. */
+ images.style.display = "block";
});
function random_from(items) {
"An image of",
"A pencil sketch of",
"A watercolor of",
+ "A 3D rendering of",
+ "A marble statue of",
];
const subject = [
" a modern home",
" sci-fi buildings",
" pastel purple clouds",
" a Teenage Mutant Ninja Turtle",
+ " Pikachu",
];
const scenery = [
" in tropical surroundings",
" on the streets of London at night with neon lights flashing",
" that is part octopus",
" melting into a puddle",
+ " on a birthday cake",
];
const artist = [
", unreal engine 5",
", fantasy art, neon fog",
", epic lighting from above",
", trending on artstation",
+ " by Gustav Klimt",
+ " by Leonardo da Vinci",
];
prompt.value = random_from(art_type) + random_from(subject) +