-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzizim.js
134 lines (89 loc) · 2.63 KB
/
zizim.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
$(function(){
$("#resetForm").click(function(){
resetForm();
});
$("h2.switch").click(function(){
$("h2.switch, .custom_alias").toggle();
$("html, body").animate({ scrollTop: $('.custom_alias').offset().top }, 1000);
});
$("#generate_url").click(function( event ){
event.preventDefault();
validateURL( $("input[name=URL]").val() );
});
});
function validateURL( url ){
$(".error").html("").hide();
$.get( "backend.php?action=validate&url="+url, function( data ) {
var validateResult = $.parseJSON( data );
switch (validateResult.valid){
case true:
generateURL( validateResult.url );
break;
case false:
displayError("Invalid URL. Please check and try again.");
break;
}
});
}
function aliasCheck(){
var alias = $("input[name=alias]").val();
if (alias){
var response;
// // Check the alias doesn't exist already, if applicable.
$.ajax({
url: "backend.php?action=aliascheck&alias="+alias,
async: false
}).done(function( data ) {
var aliasResult = $.parseJSON( data );
if ( aliasResult.valid == false ) {
if ( aliasResult.reason ){
switch ( aliasResult.reason ){
case "alphanumeric":
displayError("Sorry, you can only have alphanumeric characters in an alias. 0-9 // a-z");
break;
}
} else {
displayError("Sorry, that alias has already been used. Please try a different one.");
}
}
response = aliasResult.valid;
});
return response;
} else {
return true;
}
}
function generateURL( url ){
if ( aliasCheck() ){
$("#shorten_form, .loader").toggle();
// Hides the form. Shows the loader.
if ($("input[name=alias]").val() != ""){
alias = "&alias=" + $("input[name=alias]").val();
} else {
alias = "";
}
$.ajax({
url: "backend.php?action=generate&url=" + url + "" + alias,
async: false
}).done(function( data ) {
var urlData = $.parseJSON( data );
if (urlData.shortened){
$(".loader, .result").toggle();
$("span[class=url]").html( urlData.shortened );
} else {
$("#shorten_form, .loader").toggle();
$("input[name=url]").val(url);
$("input[name=alias]").val(alias);
displayError("Sorry, something went wrong. Please try again.");
}
});
}
}
function displayError ( error ){
$(".error").html( error ).css("display","block");
}
function resetForm(){
$(".loader, .result").hide();
$('#shorten_form')[0].reset();
$("#shorten_form").show();
}