]> CyberLeo.Net >> Repos - Github/YOURLS.git/blob - js/insert.js
Better display of titles in list and share box. Fixes issue 433. Fixes issue 455.
[Github/YOURLS.git] / js / insert.js
1 // Init some stuff\r
2 $(document).ready(function(){\r
3         $('#add-url, #add-keyword').keypress(function(e){\r
4                 if (e.which == 13) {add();}\r
5         });\r
6         reset_url();\r
7         $('#new_url_form').attr('action', 'javascript:add();');\r
8         \r
9         $('input.text').focus(function(){\r
10                 $(this).select();\r
11         });     \r
12         \r
13 });\r
14 \r
15 // Create new link and add to table\r
16 function add() {\r
17         var newurl = $("#add-url").val();\r
18         if ( !newurl || newurl == 'http://' || newurl == 'https://' ) {\r
19                 return;\r
20         }\r
21         var keyword = $("#add-keyword").val();\r
22         add_loading("#add-button");\r
23         $.getJSON(\r
24                 "index_ajax.php",\r
25                 {mode:'add', url: newurl, keyword: keyword},\r
26                 function(data){\r
27                         if(data.status == 'success') {\r
28                                 $('#main_table tbody').prepend( data.html ).trigger("update");\r
29                                 $('#nourl_found').css('display', 'none');\r
30                                 zebra_table();\r
31                                 increment();\r
32                         }\r
33 \r
34                         reset_url();\r
35                         toggle_share_fill_boxes( data.url.url, data.shorturl, data.url.title );\r
36 \r
37                         end_loading("#add-button");\r
38                         end_disable("#add-button");\r
39 \r
40                         feedback(data.message, data.status);\r
41                 }\r
42         );\r
43 }\r
44 \r
45 function toggle_share_fill_boxes( url, shorturl, title ) {\r
46         $('#copylink').val( shorturl );\r
47         $('#titlelink').val( title );\r
48         $('#origlink').attr( 'href', url ).html( url );\r
49         $('#statlink').attr( 'href', shorturl+'+' ).html( shorturl+'+' );\r
50         var tweet = ( title ? title + ' ' + shorturl : shorturl );\r
51         $('#tweet_body').val( tweet ).keypress();\r
52         $('#shareboxes').slideDown();\r
53         init_clipboard();\r
54         $('#tweet_body').keypress();\r
55 }\r
56 \r
57 // Display the edition interface\r
58 function edit(id) {\r
59         add_loading('#actions-'+id+' .button');\r
60         var keyword = $('#keyword_'+id).val();\r
61         $.getJSON(\r
62                 "index_ajax.php",\r
63                 { mode: "edit_display", keyword: keyword },\r
64                 function(data){\r
65                         $("#id-" + id).after( data.html );\r
66                         $("#edit-url-"+ id).focus();\r
67                         end_loading('#actions-'+id+' .button');\r
68                 }\r
69         );\r
70 }\r
71 \r
72 // Delete a link\r
73 function remove(id) {\r
74         if (!confirm('Really delete?')) {\r
75                 return;\r
76         }\r
77         var keyword = $('#keyword_'+id).val();\r
78         $.getJSON(\r
79                 "index_ajax.php",\r
80                 { mode: "delete", keyword: keyword },\r
81                 function(data){\r
82                         if (data.success == 1) {\r
83                                 $("#id-" + id).fadeOut(function(){\r
84                                         $(this).remove();\r
85                                         if( $('#main_table tbody tr').length  == 1 ) {\r
86                                                 $('#nourl_found').css('display', '');\r
87                                         }\r
88 \r
89                                         zebra_table();\r
90                                 });\r
91                                 decrement();\r
92                         } else {\r
93                                 alert('something wrong happened while deleting :/');\r
94                         }\r
95                 }\r
96         );\r
97 }\r
98 \r
99 // Redirect to stat page\r
100 function stats(link) {\r
101         window.location=link;\r
102 }\r
103 \r
104 // Cancel edition of a link\r
105 function hide_edit(id) {\r
106         $("#edit-" + id).fadeOut(200, function(){\r
107                 end_disable('#actions-'+id+' .button');\r
108         });\r
109 }\r
110 \r
111 // Save edition of a link\r
112 function edit_save(id) {\r
113         add_loading("#edit-close-" + id);\r
114         var newurl = $("#edit-url-" + id).val();\r
115         var newkeyword = $("#edit-keyword-" + id).val();\r
116         var title = $("#edit-title-" + id).val();\r
117         var keyword = $('#old_keyword_'+id).val();\r
118         var www = $('#yourls-site').val();\r
119         $.getJSON(\r
120                 "index_ajax.php",\r
121                 {mode:'edit_save', url: newurl, keyword: keyword, newkeyword: newkeyword, title: title },\r
122                 function(data){\r
123                         if(data.status == 'success') {\r
124                         \r
125                                 if( data.url.title != '' ) {\r
126                                         var display_link = '<a href="' + data.url.url + '" title="' + data.url.url + '">' + data.url.display_title + '</a><br/><small><a href="' + data.url.url + '">' + data.url.display_url + '</a></small>';\r
127                                 } else {\r
128                                         var display_link = '<a href="' + data.url.url + '" title="' + data.url.url + '">' + data.url.display_url + '</a>';\r
129                                 }\r
130 \r
131                                 $("#url-" + id).html(display_link);\r
132                                 $("#keyword-" + id).html('<a href="' + data.url.shorturl + '" title="' + data.url.shorturl + '">' + data.url.keyword + '</a>');\r
133                                 $("#timestamp-" + id).html(data.url.date);\r
134                                 $("#edit-" + id).fadeOut(200, function(){\r
135                                         $('#main_table tbody').trigger("update");\r
136                                 });\r
137                                 $('#keyword_'+id).val( newkeyword );\r
138                                 $('#statlink-'+id).attr( 'href', data.url.shorturl+'+' );\r
139                         }\r
140                         feedback(data.message, data.status);\r
141                         end_loading("#edit-close-" + id);\r
142                         end_disable("#actions-" + id + ' .button');\r
143                 }\r
144         );\r
145 }\r
146 \r
147 // Prettify table with odd & even rows\r
148 function zebra_table() {\r
149         $("#main_table tbody tr:even").removeClass('odd').addClass('even');\r
150         $("#main_table tbody tr:odd").removeClass('even').addClass('odd');\r
151         $('#main_table tbody').trigger("update");\r
152 }\r
153 \r
154 // Ready to add another URL\r
155 function reset_url() {\r
156         $('#add-url').val('http://').focus();\r
157         $('#add-keyword').val('');\r
158 }\r
159 \r
160 // Increment URL counters\r
161 function increment() {\r
162         $('.increment').each(function(){\r
163                 $(this).html( parseInt($(this).html()) + 1);\r
164         });\r
165 }\r
166 \r
167 // Decrement URL counters\r
168 function decrement() {\r
169         $('.increment').each(function(){\r
170                 $(this).html( parseInt($(this).html()) - 1 );\r
171         });\r
172 }\r
173 \r
174 // Toggle Share box\r
175 function toggle_share(id) {\r
176         var link = $('#url-'+id+' a:first');\r
177         var longurl = link.attr('href');\r
178         var title = link.attr('title');\r
179         var shorturl = $('#keyword-'+id+' a:first').attr('href');\r
180         \r
181         toggle_share_fill_boxes( longurl, shorturl, title );\r
182 }\r