Expand the card creator
This commit is contained in:
@@ -1,8 +1,28 @@
|
||||
iframe {
|
||||
width: 8cm;
|
||||
height: 12cm;
|
||||
width: 7cm;
|
||||
height: 11cm;
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
border: none;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
form {
|
||||
width: calc(100% - 9cm);
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
margin: 0.5em;
|
||||
}
|
||||
ul li {
|
||||
float: left;
|
||||
margin: 0.6em;
|
||||
margin-bottom: 0.1em;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
function submit_preview() {
|
||||
document.getElementById("cardform").submit();
|
||||
}
|
||||
|
||||
window.setTimeout(submit_preview, 1);
|
||||
+87
-30
@@ -1,37 +1,94 @@
|
||||
<!DOCTYPE html>
|
||||
<link rel="stylesheet" href="creator.css">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<script src="creator.js"></script>
|
||||
|
||||
<iframe name="preview"></iframe>
|
||||
|
||||
<form action="preview" method="post" target="preview">
|
||||
Title:
|
||||
<input type="text" name="title"><br>
|
||||
|
||||
Figure:
|
||||
<input type="text" name="figure"><br>
|
||||
|
||||
Description:
|
||||
<input type="text" name="description"><br>
|
||||
|
||||
Steps:
|
||||
<input type="text" name="steps"><br>
|
||||
|
||||
Effects:
|
||||
<input type="text" name="effects"><br>
|
||||
|
||||
Cost:
|
||||
<input type="text" name="cost"><br>
|
||||
|
||||
Power
|
||||
<input type="text" name="power"><br>
|
||||
|
||||
CP:
|
||||
<input type="text" name="cp"><br>
|
||||
|
||||
Flags:
|
||||
<input type="text" name="flags"><br>
|
||||
|
||||
<br>
|
||||
<input type="submit" value="preview">
|
||||
<form id="cardform" action="preview" method="post" target="preview">
|
||||
<a href="../" style="opacity:0.6;">Return to cardlist</a>
|
||||
<ul>
|
||||
<li>
|
||||
Title:<br>
|
||||
<input type="text" name="title" size="39" value="$escape_html($card.title)" onchange="this.form.submit()">
|
||||
</li>
|
||||
<li>
|
||||
Figure:<br>
|
||||
<input type="text" name="figure" size="39" value="$escape_html($card.figure)"onchange="this.form.submit()"><br>
|
||||
|
||||
Source:
|
||||
#if($card.figure_source=="material-icons")
|
||||
<input checked type="radio" name="figure_source" value="material-icons" onchange="this.form.submit()">
|
||||
#else
|
||||
<input type="radio" name="figure_source" value="material-icons" onchange="this.form.submit()">
|
||||
#end
|
||||
<a href="https://material.io/icons/">material-icons</a>
|
||||
|
||||
#if($card.figure_source=="mdi")
|
||||
<input checked type="radio" name="figure_source" value="mdi" onchange="this.form.submit()">
|
||||
#else
|
||||
<input type="radio" name="figure_source" value="mdi" onchange="this.form.submit()">
|
||||
#end
|
||||
<a href="https://materialdesignicons.com/">mdi</a>
|
||||
|
||||
#if($card.figure_source=="fe")
|
||||
<input checked type="radio" name="figure_source" value="fa" onchange="this.form.submit()">
|
||||
#else
|
||||
<input type="radio" name="figure_source" value="fa" onchange="this.form.submit()">
|
||||
#end
|
||||
<a href="http://fontawesome.io/icons/">fa</a>
|
||||
|
||||
#if($card.figure_source=="svg")
|
||||
<input checked type="radio" name="figure_source" value="svg" onchange="this.form.submit()">
|
||||
#else
|
||||
<input type="radio" name="figure_source" value="svg" onchange="this.form.submit()">
|
||||
#end
|
||||
<a href="svg">svg</a>
|
||||
</li>
|
||||
<li>
|
||||
Description:<br>
|
||||
<textarea name="description" cols="40" rows="5" onchange="this.form.submit()">$escape_html($card.description, False)</textarea>
|
||||
</li>
|
||||
<li>
|
||||
Steps:<br>
|
||||
<textarea name="steps" cols="40" rows="5" onchange="this.form.submit()">$escape_html($card.steps, False)</textarea>
|
||||
</li>
|
||||
<li>
|
||||
Effects:<br>
|
||||
<textarea name="effects" cols="40" rows="5" onchange="this.form.submit()">$escape_html($card.effects, False)</textarea>
|
||||
</li>
|
||||
<li>
|
||||
Flags/Properties:<br>
|
||||
<textarea name="flags" cols="40" rows="5" onchange="this.form.submit()">$escape_html($card.flags, False)</textarea>
|
||||
</li>
|
||||
<li>
|
||||
Cost:<br>
|
||||
<input type="text" name="cost" size="39" value="$escape_html($card.cost)" onchange="this.form.submit()">
|
||||
</li>
|
||||
<li>
|
||||
Power<br>
|
||||
<input type="text" name="power" size="39" value="$escape_html($card.power)" onchange="this.form.submit()">
|
||||
</li>
|
||||
<li>
|
||||
Notes:<span style="opacity:0.4;">(Not shown)</span><br>
|
||||
<textarea name="notes" cols="40" rows="5">$escape_html($card.notes, False)</textarea>
|
||||
</li>
|
||||
<li>
|
||||
Worth: CP or Gold<span style="opacity:0.4;">(GP)</span>:<br>
|
||||
<input type="text" name="cp" size="19" value="$escape_html($card.cp)" placeholder="CP" onchange="this.form.submit()">
|
||||
<input type="text" name="gp" size="19" value="$escape_html($card.gp)" placeholder="gold" onchange="this.form.submit()">
|
||||
</li>
|
||||
<li>
|
||||
<br>
|
||||
<input type="submit" value="Update preview">
|
||||
<input type="submit" name="save" value="Save as">
|
||||
->
|
||||
<input type="text" name="filename" size="15" value="$escape_html($card.filename)" placeholder="filename">
|
||||
<input type="submit" name="delete" value="Delete">
|
||||
<br>
|
||||
|
||||
<a href="../">Return to cardlist</a>
|
||||
<br>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
@@ -22,7 +22,40 @@ async def show_cardlist(request, template={}):
|
||||
@app.get('/cards/creator')
|
||||
@withTemplate("cards/creator.vm")
|
||||
async def preview_card(request, template={}):
|
||||
return response.html(template["creator.vm"].merge(locals()))
|
||||
if "filename" in request.args:
|
||||
initialcard = card.from_file(str(request.args["filename"][0])+".yaml")
|
||||
else:
|
||||
initialcard = card.Card()
|
||||
|
||||
#find vacant fileame:
|
||||
i = 1
|
||||
while 1:
|
||||
if card.is_filename_vacant("card-%s" % str(i).zfill(4)):
|
||||
initialcard.filename = "card-%s" % str(i).zfill(4)
|
||||
break
|
||||
i += 1
|
||||
#initialcard.power = ""
|
||||
#initialcard.cp = ""
|
||||
#initialcard.steps = ""
|
||||
#initialcard.effects = ""
|
||||
#initialcard.flags = ""
|
||||
|
||||
return response.html(template["creator.vm"].merge({"card":initialcard}))
|
||||
|
||||
@app.post('/cards/creator')
|
||||
@withTemplate("cards/creator.vm")
|
||||
async def preview_card(request, template={}):
|
||||
initialcard = card.from_form(request.form)
|
||||
|
||||
#find vacant fileame:
|
||||
if not initialcard.filename:
|
||||
i = 1
|
||||
while 1:
|
||||
if card.is_filename_vacant("card-%s" % str(i).zfill(4)):
|
||||
initialcard.filename = "card-%s" % str(i).zfill(4)
|
||||
break
|
||||
i += 1
|
||||
return response.html(template["creator.vm"].merge({"card":initialcard}))
|
||||
|
||||
@app.get('/cards/show')
|
||||
@withTemplate("cards/card.vm")
|
||||
|
||||
Reference in New Issue
Block a user