1
0
mirror of https://github.com/Tygs/0bin.git synced 2023-08-10 21:13:00 +03:00
0bin/zerobin/views/paste.tpl

241 lines
13 KiB
Smarty
Raw Normal View History

%if "burn_after_reading" in str(paste.expiration):
2020-08-11 12:55:29 +03:00
%if keep_alive:
2020-08-12 16:22:47 +03:00
<p class="alert alert-dismissible alert-primary">
2020-08-11 17:37:03 +03:00
<a class="close" data-dismiss="alert" href="#" @click.prevent="$event.target.parentNode.remove()">×</a>
2020-08-11 12:55:29 +03:00
<strong class="title">Ok!</strong>
<span class="message">
This paste will be deleted the next time it is read.
</span>
</p>
%else:
2020-08-12 16:22:47 +03:00
<p class="alert alert-warning alert-dismissible">
2020-08-11 17:37:03 +03:00
<a class="close" data-dismiss="alert" href="#" @click.prevent="$event.target.parentNode.remove()">×</a>
2020-08-11 12:55:29 +03:00
<strong class="title">Warning!</strong>
<span class="message">
This paste has self-destructed. If you close this window,
there is no way to recover it.
</span>
</p>
%end
%end
2012-04-28 22:18:05 +04:00
<div class="well paste-form">
2020-08-11 12:55:29 +03:00
<form action="/" method="get" accept-charset="utf-8">
2012-04-26 13:38:55 +04:00
<div :class="{'d-flex': true, 'justify-content-between': true , 'reader-mode-tools': readerMode}">
2020-08-12 11:19:31 +03:00
<div class="btn-group" role="group">
2020-08-12 15:02:13 +03:00
<button v-if="support.clipboard && currentPaste.type === 'text'" @click.prevent="copyToClipboard()"
2020-08-15 12:53:32 +03:00
type="button" id="clip-button" class="btn btn-secondary responsive-icons">Copy to clipboard
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-clipboard-plus" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" fill="#eee" d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/>
<path fill-rule="evenodd" fill="#eee" d="M9.5 1h-3a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3zM8 7a.5.5 0 0 1 .5.5V9H10a.5.5 0 0 1 0 1H8.5v1.5a.5.5 0 0 1-1 0V10H6a.5.5 0 0 1 0-1h1.5V7.5A.5.5 0 0 1 8 7z"/>
</svg>
</button>
<button type="button" id="email-link" class="btn btn-secondary responsive-icons" @click="handleSendByEmail($event)">
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-envelope" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" fill="#eee" d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383l-4.758 2.855L15 11.114v-5.73zm-.034 6.878L9.271 8.82 8 9.583 6.728 8.82l-5.694 3.44A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.739zM1 11.114l4.758-2.876L1 5.383v5.73z"/>
</svg>
Email
2020-08-12 11:19:31 +03:00
this</button>
2020-08-12 10:26:17 +03:00
</div>
2020-08-11 12:55:29 +03:00
2020-08-12 11:19:31 +03:00
<div>
2020-08-15 12:53:32 +03:00
<span class="paste-option btn-group responsive-icons">
<button class="btn btn-clone btn-secondary" @click.prevent="handleClone()">Clone
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-files" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" fill-rule="evenodd" d="M3 2h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H3z"/>
<path d="M5 0h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1H3a2 2 0 0 1 2-2z"/>
</svg>
</button>
<a class="btn btn-secondary download-link" :href="currentPaste.downloadLink.url"
2020-08-15 12:53:32 +03:00
:download="currentPaste.downloadLink.name">Download
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-cloud-download-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" fill-rule="evenodd" d="M8 0a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 4.095 0 5.555 0 7.318 0 9.366 1.708 11 3.781 11H7.5V5.5a.5.5 0 0 1 1 0V11h4.188C14.502 11 16 9.57 16 7.773c0-1.636-1.242-2.969-2.834-3.194C12.923 1.999 10.69 0 8 0zm-.354 15.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 14.293V11h-1v3.293l-2.146-2.147a.5.5 0 0 0-.708.708l3 3z"/>
</svg>
</a>
<button class="btn btn-secondary">New Paste
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-pencil-square" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456l-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
</svg>
</button>
2020-08-12 10:26:17 +03:00
</span>
2020-08-12 11:19:31 +03:00
</div>
</div>
2020-08-12 10:26:17 +03:00
<div class="progress-container">
2020-08-12 12:15:01 +03:00
<div class="progress active" v-show="isLoading">
<div class="progress-bar progress-bar-striped" role="progressbar"></div>
2020-08-12 10:26:17 +03:00
</div>
2020-08-11 12:55:29 +03:00
</div>
%expiration = paste.humanized_expiration
%if expiration:
2020-08-12 11:19:31 +03:00
<span id="expiration-tag">Expire {{ expiration }}</span>
2020-08-11 12:55:29 +03:00
%end
2020-08-12 17:10:37 +03:00
2020-08-13 17:53:17 +03:00
<pre id="paste-content" class="prettyprint" v-if="!readerMode">
2020-08-13 16:25:19 +03:00
<code>
{{ paste.content }}
</code>
2020-08-13 17:53:17 +03:00
</pre>
2020-08-15 11:29:22 +03:00
<div>
<div id="readable-paste-content" v-if="readerMode">
{% currentPaste.content %}
</div>
</div>
2020-08-14 19:20:31 +03:00
<div class="paste-options-res">
<div class="btn-group">
2020-08-15 17:17:18 +03:00
<span class="input-group-text">Tip it<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18"
2020-08-15 11:02:57 +03:00
viewBox="0 0 24 24">
<path
d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 18v-1.511h-.5v1.511h-1v-1.511h-2.484l.25-1.489h.539c.442 0 .695-.425.695-.854v-4.444c0-.416-.242-.702-.683-.702h-.817v-1.5h2.5v-1.5h1v1.5h.5v-1.5h1v1.526c2.158.073 3.012.891 3.257 1.812.29 1.09-.429 2.005-1.046 2.228.75.192 1.789.746 1.789 2.026 0 1.742-1.344 2.908-4 2.908v1.5h-1zm-.5-5.503v2.503c1.984 0 3.344-.188 3.344-1.258 0-1.148-1.469-1.245-3.344-1.245zm0-.997c1.105 0 2.789-.078 2.789-1.25 0-1-1.039-1.25-2.789-1.25v2.5z"
fill="#eee" /></svg></span>
2020-08-14 19:20:31 +03:00
<a class="btn btn-primary btc-tip-address"
2020-08-15 12:09:34 +03:00
href="bitcoin:{{ paste.btc_tip_address or 'bc1q4x6nwp56s9enmwtsa8um0gywpxdzeyrdluga04' }}">
{{ paste.btc_tip_address or 'bc1q4x6nwp56s9enmwtsa8um0gywpxdzeyrdluga04'}}
2020-08-14 19:20:31 +03:00
</a>
<button v-if="support.clipboard" class="btn btn-secondary" @click.prevent="copyBTCAdressToClipboard()">
2020-08-15 15:06:19 +03:00
{% this.btcCopied ? "Copied :)" : "Copy" %}
2020-08-15 11:02:57 +03:00
</button>
2020-08-15 15:06:19 +03:00
<a href="https://www.binance.com/en/register?ref=CAWS9NNE" class="btn btn-secondary buy-btc" target="_blank" title="Be cool, Buy Bitcoins!">Buy Bitcoins!</a>
2020-08-14 19:20:31 +03:00
</div>
</div>
2020-08-13 17:53:17 +03:00
2012-04-26 13:38:55 +04:00
2020-08-12 11:11:51 +03:00
<div class="d-flex justify-content-between down">
2020-08-15 17:17:18 +03:00
<div>
<div v-if="currentPaste.ownerKey">
<button class="btn btn-secondary" @click.prevent="handleDeletePaste()">Delete Paste</button>
</div>
2020-08-12 11:19:31 +03:00
</div>
<div>
2020-08-15 12:53:32 +03:00
<span class="paste-option btn-group responsive-icons">
<button class="btn btn-clone btn-secondary" @click.prevent="handleClone()">Clone
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-files" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" fill-rule="evenodd" d="M3 2h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm0 1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V4a1 1 0 0 0-1-1H3z"/>
<path d="M5 0h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2v-1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1H3a2 2 0 0 1 2-2z"/>
</svg>
</button>
2020-08-12 11:19:31 +03:00
<a class="btn btn-secondary download-link" :href="currentPaste.downloadLink.url"
2020-08-15 12:53:32 +03:00
:download="currentPaste.downloadLink.name">Download
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-cloud-download-fill" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" fill-rule="evenodd" d="M8 0a5.53 5.53 0 0 0-3.594 1.342c-.766.66-1.321 1.52-1.464 2.383C1.266 4.095 0 5.555 0 7.318 0 9.366 1.708 11 3.781 11H7.5V5.5a.5.5 0 0 1 1 0V11h4.188C14.502 11 16 9.57 16 7.773c0-1.636-1.242-2.969-2.834-3.194C12.923 1.999 10.69 0 8 0zm-.354 15.854a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0-.708-.708L8.5 14.293V11h-1v3.293l-2.146-2.147a.5.5 0 0 0-.708.708l3 3z"/>
</svg>
</a>
<button class="btn btn-secondary">New Paste
<svg width="24" height="24" viewBox="0 0 20 20" class="bi bi-pencil-square" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
<path fill="#eee" d="M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456l-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z"/>
<path fill-rule="evenodd" d="M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z"/>
</svg>
</button>
2020-08-12 11:11:51 +03:00
</span>
2020-08-12 11:19:31 +03:00
</div>
2020-08-12 10:26:17 +03:00
</div>
2012-04-26 13:38:55 +04:00
2020-08-11 12:55:29 +03:00
</form>
2012-04-28 12:26:36 +04:00
</div>
2012-04-28 21:55:00 +04:00
<!-- For cloning -->
<div class="submit-form clone">
2020-08-11 17:37:03 +03:00
<form class="well" method="post" action="/paste/create" @submit.prevent="encryptAndSendPaste()">
2020-08-12 10:26:17 +03:00
<div class="d-flex justify-content-between">
2020-08-12 11:19:31 +03:00
2020-08-12 10:26:17 +03:00
<div>
2020-08-12 11:19:31 +03:00
<div class="file-upload">
2020-08-15 11:29:22 +03:00
<button type="button" class="btn btn-info" @click.prevent="handleCancelClone()">Cancel clone</button>
2020-08-12 10:26:17 +03:00
</div>
2020-08-12 11:19:31 +03:00
</div>
2020-08-12 10:26:17 +03:00
<div class="form-group select-date-clone paste-option">
2020-08-12 11:19:31 +03:00
<div class="input-group">
2020-08-12 11:11:51 +03:00
<select id="expiration" name="expiration" class="custom-select" v-model="newPaste.expiration">
2020-08-12 10:26:17 +03:00
<option value="burn_after_reading">Burn after reading</option>
2020-08-12 17:10:37 +03:00
<option selected value="1_day">Expire in 1 day</option>
<option value="1_month">Expire in 1 month</option>
<option value="never">Never expire</option>
2020-08-12 10:26:17 +03:00
</select>
2020-08-12 11:19:31 +03:00
<div class="input-group-append">
2020-08-12 10:26:17 +03:00
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
2020-08-12 10:26:17 +03:00
</div>
2020-08-12 11:19:31 +03:00
</div>
<div class="progress-container progress-clone">
2020-08-12 12:15:01 +03:00
<div class="progress active" v-show="isLoading">
<div class="progress-bar progress-bar-striped" role="progressbar"></div>
2020-08-11 12:55:29 +03:00
</div>
2013-01-24 13:59:25 +04:00
</div>
2020-08-11 12:55:29 +03:00
2020-08-12 11:19:31 +03:00
<div>
2020-08-12 15:14:13 +03:00
<textarea rows="10" style="width:100%;" class=" form-control" @keydown.ctrl.enter="encryptAndSendPaste()"
2020-08-12 11:19:31 +03:00
id="content" name="content"></textarea>
<div class="paste-options">
2020-08-15 11:02:57 +03:00
<h6>Optional fields (those are <em>not</em> encrypted):</h6>
2020-08-15 11:29:22 +03:00
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">Title</span>
</div>
<input type="text" class="form-control paste-excerpt" name="paste-excerpt"
2020-08-15 11:02:57 +03:00
placeholder="Anything you type here will be visible by anyone, including search engines."
2020-08-15 11:29:22 +03:00
v-model="newPaste.title" maxlength="60">
</div>
2020-08-14 17:41:45 +03:00
<div class="input-group mb-3">
<div class="input-group-prepend">
2020-08-15 11:02:57 +03:00
<span class="input-group-text" id="basic-addon1"><strong><svg xmlns="http://www.w3.org/2000/svg" width="18"
height="18" viewBox="0 0 24 24">
<path
d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm0 18v-1.511h-.5v1.511h-1v-1.511h-2.484l.25-1.489h.539c.442 0 .695-.425.695-.854v-4.444c0-.416-.242-.702-.683-.702h-.817v-1.5h2.5v-1.5h1v1.5h.5v-1.5h1v1.526c2.158.073 3.012.891 3.257 1.812.29 1.09-.429 2.005-1.046 2.228.75.192 1.789.746 1.789 2.026 0 1.742-1.344 2.908-4 2.908v1.5h-1zm-.5-5.503v2.503c1.984 0 3.344-.188 3.344-1.258 0-1.148-1.469-1.245-3.344-1.245zm0-.997c1.105 0 2.789-.078 2.789-1.25 0-1-1.039-1.25-2.789-1.25v2.5z"
fill="#eee" /></svg> tip</strong></span>
2020-08-14 17:41:45 +03:00
</div>
<input type="text" class="form-control paste-btc-tip-address" name="paste-btc-tip-address"
2020-08-15 11:29:22 +03:00
placeholder="Put a BTC address to ask for a tip. Leave it empty to let us use our."
v-model="newPaste.btcTipAddress" maxlength="50">
2020-08-14 17:41:45 +03:00
</div>
2020-08-15 11:29:22 +03:00
</div>
2013-01-24 13:59:25 +04:00
</div>
2020-08-12 11:11:51 +03:00
<div class="d-flex justify-content-between" v-if="displayBottomToolBar">>
2020-08-12 11:19:31 +03:00
2020-08-12 11:11:51 +03:00
<div>
2020-08-12 11:19:31 +03:00
<div class="file-upload">
2020-08-15 11:29:22 +03:00
<button type="button" class="btn btn-info" @click.prevent="handleCancelClone()">Cancel clone</button>
2020-08-12 11:11:51 +03:00
</div>
2020-08-12 11:19:31 +03:00
</div>
2020-08-12 11:11:51 +03:00
<div class="form-group select-date-clone paste-option">
2020-08-12 11:19:31 +03:00
<div class="input-group">
2020-08-12 11:11:51 +03:00
<select id="expiration" name="expiration" class="custom-select" v-model="newPaste.expiration">
<option value="burn_after_reading">Burn after reading</option>
2020-08-12 17:10:37 +03:00
<option selected value="1_day">Expire in 1 day</option>
<option value="1_month">Expire in 1 month</option>
<option value="never">Never expire</option>
2020-08-12 11:11:51 +03:00
</select>
2020-08-12 11:19:31 +03:00
<div class="input-group-append">
2020-08-12 11:11:51 +03:00
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</div>
2020-08-12 11:19:31 +03:00
</div>
</form>
</div>
2012-04-28 21:55:00 +04:00
2015-05-10 20:19:02 +03:00
% rebase("base", settings=settings, pastes_count=pastes_count)