Expand the card creator
This commit is contained in:
@@ -1,8 +1,28 @@
|
|||||||
iframe {
|
iframe {
|
||||||
width: 8cm;
|
width: 7cm;
|
||||||
height: 12cm;
|
height: 11cm;
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
right: 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>
|
<!DOCTYPE html>
|
||||||
<link rel="stylesheet" href="creator.css">
|
<link rel="stylesheet" href="creator.css">
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
|
||||||
|
<script src="creator.js"></script>
|
||||||
|
|
||||||
<iframe name="preview"></iframe>
|
<iframe name="preview"></iframe>
|
||||||
|
|
||||||
<form action="preview" method="post" target="preview">
|
<form id="cardform" action="preview" method="post" target="preview">
|
||||||
Title:
|
<a href="../" style="opacity:0.6;">Return to cardlist</a>
|
||||||
<input type="text" name="title"><br>
|
<ul>
|
||||||
|
<li>
|
||||||
Figure:
|
Title:<br>
|
||||||
<input type="text" name="figure"><br>
|
<input type="text" name="title" size="39" value="$escape_html($card.title)" onchange="this.form.submit()">
|
||||||
|
</li>
|
||||||
Description:
|
<li>
|
||||||
<input type="text" name="description"><br>
|
Figure:<br>
|
||||||
|
<input type="text" name="figure" size="39" value="$escape_html($card.figure)"onchange="this.form.submit()"><br>
|
||||||
Steps:
|
|
||||||
<input type="text" name="steps"><br>
|
Source:
|
||||||
|
#if($card.figure_source=="material-icons")
|
||||||
Effects:
|
<input checked type="radio" name="figure_source" value="material-icons" onchange="this.form.submit()">
|
||||||
<input type="text" name="effects"><br>
|
#else
|
||||||
|
<input type="radio" name="figure_source" value="material-icons" onchange="this.form.submit()">
|
||||||
Cost:
|
#end
|
||||||
<input type="text" name="cost"><br>
|
<a href="https://material.io/icons/">material-icons</a>
|
||||||
|
|
||||||
Power
|
#if($card.figure_source=="mdi")
|
||||||
<input type="text" name="power"><br>
|
<input checked type="radio" name="figure_source" value="mdi" onchange="this.form.submit()">
|
||||||
|
#else
|
||||||
CP:
|
<input type="radio" name="figure_source" value="mdi" onchange="this.form.submit()">
|
||||||
<input type="text" name="cp"><br>
|
#end
|
||||||
|
<a href="https://materialdesignicons.com/">mdi</a>
|
||||||
Flags:
|
|
||||||
<input type="text" name="flags"><br>
|
#if($card.figure_source=="fe")
|
||||||
|
<input checked type="radio" name="figure_source" value="fa" onchange="this.form.submit()">
|
||||||
<br>
|
#else
|
||||||
<input type="submit" value="preview">
|
<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>
|
</form>
|
||||||
|
|||||||
@@ -22,7 +22,40 @@ async def show_cardlist(request, template={}):
|
|||||||
@app.get('/cards/creator')
|
@app.get('/cards/creator')
|
||||||
@withTemplate("cards/creator.vm")
|
@withTemplate("cards/creator.vm")
|
||||||
async def preview_card(request, template={}):
|
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')
|
@app.get('/cards/show')
|
||||||
@withTemplate("cards/card.vm")
|
@withTemplate("cards/card.vm")
|
||||||
|
|||||||
Reference in New Issue
Block a user