mirror of
https://github.com/taigrr/shorturl
synced 2025-01-18 04:03:16 -08:00
Improve layouts
1. Validate input url is empty for index and view page 2. Display origin full url in view page 3. Do not show edit and delete button on small screen 4. Add tooltip for view button 5. Pad domain on view page
This commit is contained in:
parent
31c239e486
commit
6dfe1f83f0
@ -167,9 +167,11 @@ func (s *Server) ViewHandler() httprouter.Handle {
|
|||||||
struct {
|
struct {
|
||||||
ID string
|
ID string
|
||||||
URL string
|
URL string
|
||||||
|
Ori string
|
||||||
}{
|
}{
|
||||||
ID: u.ID,
|
ID: u.ID,
|
||||||
URL: fullURL.String(),
|
URL: fullURL.String(),
|
||||||
|
Ori: u.URL,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<form class="mt-10" action="/e/{{.ID}}" method="POST">
|
<form class="mt-10" action="/e/{{.ID}}" method="POST">
|
||||||
<div class="form-group input-group">
|
<div class="form-group input-group">
|
||||||
<input class="form-input column col-1" type="text" name="id" value="{{.ID}}" />
|
<input class="form-input column col-1" type="text" name="id" value="{{.ID}}" />
|
||||||
<input class="form-input" type="text" name="url" value="{{.URL}}" placeholder="Enter long url here..." />
|
<input class="form-input" id="input-url" type="text" name="url" value="{{.URL}}" placeholder="Enter long url here..." />
|
||||||
<button class="btn btn-primary" type="submit">Edit</button>
|
<button class="btn btn-primary" id="submit" type="submit">OK</button>
|
||||||
<a class="btn btn-action" href="/u/{{.ID}}">
|
<a class="btn btn-action" href="/u/{{.ID}}">
|
||||||
<i class="icon icon-forward">View</i>
|
<i class="icon icon-forward">View</i>
|
||||||
</a>
|
</a>
|
||||||
@ -17,3 +17,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{define "scripts"}}
|
||||||
|
<script src="/js/jquery.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$("#input-url").focus(function() {
|
||||||
|
$("#submit").removeAttr("data-tooltip", "Please enter long url").removeClass("tooltip tooltip-left");
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#submit").click(function() {
|
||||||
|
if ($("#input-url").val().trim() === "") {
|
||||||
|
$(this).attr("data-tooltip", "Please enter long url").addClass("tooltip tooltip-left");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{{end}}
|
@ -3,31 +3,51 @@
|
|||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
{{ range $URL := .URLList }}
|
{{ range $URL := .URLList }}
|
||||||
<div class="input-group mb-5">
|
<div class="input-group col-12">
|
||||||
<span class="input-group-addon d-inline-block">
|
<span class="input-group-addon col-8 d-inline-block text-ellipsis">
|
||||||
{{ $URL.ID }}
|
{{ $URL.ID }}
|
||||||
<i class="icon icon-forward"></i>
|
<i class="icon icon-forward"></i>
|
||||||
{{ $URL.URL -}}
|
{{ $URL.URL -}}
|
||||||
</span>
|
</span>
|
||||||
<a class="btn btn-action btn-primary" href="/u/{{$URL.ID}}">
|
<div class="popover popover-right">
|
||||||
|
<a class="btn btn-action btn-primary tooltip tooltip-left" data-tooltip="View Detail" href="/u/{{$URL.ID}}">
|
||||||
<i class="icon icon-forward">View</i>
|
<i class="icon icon-forward">View</i>
|
||||||
</a>
|
</a>
|
||||||
<a class="btn btn-action" href="/e/{{$URL.ID}}">
|
|
||||||
<i class="icon icon-edit">Edit</i>
|
|
||||||
</a>
|
|
||||||
<a class="btn btn-action" href="/d/{{$URL.ID}}">
|
|
||||||
<i class="icon icon-delete">Delete</i>
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
<a class="btn btn-action hide-md" href="/e/{{$URL.ID}}">
|
||||||
|
<i class="icon icon-edit">Edit</i>
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-action hide-lg" href="/d/{{$URL.ID}}">
|
||||||
|
<i class="icon icon-delete">Delete</i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
<form class="mt-10" action="" method="POST">
|
<form class="mt-10" action="" method="POST">
|
||||||
<div class="form-group input-group">
|
<div class="form-group input-group">
|
||||||
<label class="form-label" for="input-url"></label>
|
<label class="form-label" for="input-url"></label>
|
||||||
<input class="form-input" id="input-url" type="text" name="url" placeholder="Enter long url here..." autofocus>
|
<input class="form-input" id="input-url" type="text" name="url" placeholder="Enter long url here..."
|
||||||
<button class="btn btn-primary" type="submit">Shorten</button>
|
autofocus>
|
||||||
|
<button class="btn btn-primary" id="submit" type="submit">Shorten</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
{{define "scripts"}}
|
||||||
|
<script src="/js/jquery.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$("#input-url").focus(function() {
|
||||||
|
$("#submit").removeAttr("data-tooltip", "Please enter long url").removeClass("tooltip tooltip-left");
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#submit").click(function() {
|
||||||
|
if ($("#input-url").val().trim() === "") {
|
||||||
|
$(this).attr("data-tooltip", "Please enter long url").addClass("tooltip tooltip-left");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{{end}}
|
@ -2,9 +2,10 @@
|
|||||||
<section class="container">
|
<section class="container">
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<p>Your short url is: <a href="/r/{{.ID}}">{{.ID}}</a></p>
|
<p class="text-ellipsis text-secondary">Your short url is: <a href="/r/{{.ID}}">{{.ID}}</a></p>
|
||||||
|
<p class="text-ellipsis text-secondary">Your full url is: <a href="{{.Ori}}">{{.Ori}}</a></p>
|
||||||
<div class="form-group input-group">
|
<div class="form-group input-group">
|
||||||
<input class="form-input" id="input-url" value="{{.URL}}" readonly />
|
<input class="form-input text-ellipsis" id="input-url" value="{{.URL}}" readonly />
|
||||||
<button class="btn btn-primary hide" id="btn-copy" data-clipboard-target="#input-url">Copy</button>
|
<button class="btn btn-primary hide" id="btn-copy" data-clipboard-target="#input-url">Copy</button>
|
||||||
<a class="btn btn-action" href="/e/{{.ID}}">
|
<a class="btn btn-action" href="/e/{{.ID}}">
|
||||||
<i class="icon icon-edit">Edit</i>
|
<i class="icon icon-edit">Edit</i>
|
||||||
@ -30,6 +31,12 @@ $(document).ready(function() {
|
|||||||
}, timeout || 3000);
|
}, timeout || 3000);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var padShortURL = function() {
|
||||||
|
var domain = window.location.origin;
|
||||||
|
var short = $("#input-url").val().replace(domain, "");
|
||||||
|
$("#input-url").val(domain + short);
|
||||||
|
};
|
||||||
|
|
||||||
clipboard.on("success", function(e) {
|
clipboard.on("success", function(e) {
|
||||||
e.clearSelection();
|
e.clearSelection();
|
||||||
displayTooltip("#btn-copy", "Copied!");
|
displayTooltip("#btn-copy", "Copied!");
|
||||||
@ -40,6 +47,8 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
$("#btn-copy").removeClass("hide");
|
$("#btn-copy").removeClass("hide");
|
||||||
|
|
||||||
|
padShortURL();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user