Skip to content
Snippets Groups Projects
Verified Commit e02128a0 authored by Andrej Ramašeuski's avatar Andrej Ramašeuski
Browse files

Podpora custom url

parent edef0907
Branches
No related tags found
No related merge requests found
Pipeline #8605 passed
- custom url
- 302 nebo informacni stranka
- statistika
- smazani
- editace/smazani
- loop detect
- 302 nebo informacni stranka
0.1.2
0.2.0
......@@ -8,11 +8,31 @@ use Image::PNG::QRCode 'qrpng';
sub create ($c) {
my $url = $c->param('url');
if( ! is_uri($url) ){
$c->render('shortcut/invalid');
if( ! is_uri($url) ) {
$c->render('shortcut/invalid', error => 'Chybná URL adresa!');
return;
}
my $custom = lc($c->param('shortcut'));
if ( ! $custom =~ /^[a..z0..9]{1,8}$/i ) {
$c->render('shortcut/invalid', error => 'Neplatná zkratka');
return;
}
if ( $custom ) {
my $exists = $c->schema->resultset('Shortcut')->search({
is_active => 1,
deleted => undef,
shortcut => $custom,
})->count;
if( $exists ) {
$c->render('shortcut/invalid', error => "Zkratka $custom už je použitá");
return;
}
}
my %data = (
user_id => $c->current_user->{id},
deleted => undef,
......@@ -23,7 +43,7 @@ sub create ($c) {
$shortcut ||= $c->schema->resultset('Shortcut')->create({
%data,
shortcut => $c->schema->resultset('Shortcut')->generate(),
shortcut => $custom // $c->schema->resultset('Shortcut')->generate(),
});
$url = 'https://' . $c->config->{domain} . '/' . $shortcut->shortcut;
......
<p>
<div class="card elevation-4">
<div class="card__body">
<form hx-post="/" hx-target="#response" hx-params="*">
<div class="form-field">
<label class="form-field__label" for="field">URL</label>
<div class="card elevation-4 space-y-4">
<div class="card__body">
<div class="grid grid-cols-12 gap-4 row-gap-6">
<div class="form-field col-span-9">
<label class="form-field__label" for="url">URL</label>
<div class="form-field__wrapper form-field__wrapper--shadowed">
<input type="text" name="url" class="text-input form-field__control" value="" placeholder="https://www.pirati.cz/program/dlouhodoby/psychotropni-latky/" required="required" />
<button class="btn btn--grey-125 btn--hoveractive">
</div>
</div>
<div class="form-field col-span-3">
<label class="form-field__label" for="shortcut">Zkratka</label>
<div class="form-field__wrapper form-field__wrapper--shadowed">
<input type="text" name="shortcut" class="text-input form-field__control w-40" size="8" maxlength="8" value="" placeholder="thc" />
<button class="btn btn--grey-125 btn--hoveractive ml-4">
<div class="btn__body">Zkrátit</div>
</button>
</div>
</div>
</form>
</div>
</div>
</p>
</div>
</div>
</form>
<div id="response"></div>
<span class="alert alert--red-600 alert--faded">
<span>Chybná URL adresa!</span>
<span><%= $error %></span>
</span>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment