summaryrefslogtreecommitdiffstats
path: root/extensions/Bitly/web/js/bitly.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/Bitly/web/js/bitly.js')
-rw-r--r--extensions/Bitly/web/js/bitly.js118
1 files changed, 35 insertions, 83 deletions
diff --git a/extensions/Bitly/web/js/bitly.js b/extensions/Bitly/web/js/bitly.js
index 62c49b650..6784c83e9 100644
--- a/extensions/Bitly/web/js/bitly.js
+++ b/extensions/Bitly/web/js/bitly.js
@@ -5,96 +5,48 @@
* This Source Code Form is "Incompatible With Secondary Licenses", as
* defined by the Mozilla Public License, v. 2.0. */
-(function() {
+$(function() {
'use strict';
- var Dom = YAHOO.util.Dom;
- YAHOO.namespace('bitly');
- var bitly = YAHOO.bitly;
+ var popup, urls = [];
- bitly.dialog = false;
- bitly.url = { shorten: '', list: '' };
+ function execute() {
+ var type = $('#bitly-type').val();
- bitly.shorten = function() {
- if (this.dialog) {
- this.dialog.show();
- var el = Dom.get('bitly_url');
- el.select();
- el.focus();
+ if (urls[type]) {
+ $('#bitly-url').val(urls[type]).select().focus();
return;
}
- this.dialog = new YAHOO.widget.Overlay('bitly_overlay', {
- visible: true,
- close: false,
- underlay: 'shadow',
- width: '400px',
- context: [ 'bitly_shorten', 'bl', 'tl', ['windowResize'], [0, -10] ]
- });
- this.dialog.render(document.body);
- YAHOO.util.Event.addListener('bitly_close', 'click', function() {
- YAHOO.bitly.dialog.hide();
- });
- YAHOO.util.Event.addListener('bitly_url', 'keypress', function(o) {
- if (o.keyCode == 27 || o.keyCode == 13)
- YAHOO.bitly.dialog.hide();
+ $('#bitly-url').val('');
+ var request = 'rest/bitly/' + type +
+ '?url=' + encodeURIComponent($('#bitly-shorten').data('url')) +
+ '&Bugzilla_api_token=' + encodeURIComponent(BUGZILLA.api_token);
+ $.ajax(request)
+ .done(function(data) {
+ urls[type] = data.url;
+ $('#bitly-url').val(urls[type]).select().focus();
+ })
+ .error(function(data) {
+ $('#bitly-url').val(data.responseJSON.message);
+ });
+ }
+
+ $('#bitly-shorten')
+ .click(function(event) {
+ event.preventDefault();
+ popup = $('#bitly-overlay').bPopup({
+ speed: 100,
+ followSpeed: 100,
+ modalColor: '#fff'
+ }, execute);
});
- this.execute();
- Dom.get('bitly_url').focus();
- };
-
- bitly.execute = function() {
- Dom.get('bitly_url').value = '';
- var type = Dom.get('bitly_type').value;
- if (this.url[type]) {
- this.set(this.url[type]);
- return;
- }
+ $('#bitly-type')
+ .change(execute);
- var url = 'rest/bitly/' + type + '?url=' + encodeURIComponent(document.location);
- YAHOO.util.Connect.initHeader("Accept", "application/json");
- YAHOO.util.Connect.asyncRequest('GET', url, {
- success: function(o) {
- var response = YAHOO.lang.JSON.parse(o.responseText);
- if (response.error) {
- bitly.set(response.message);
- }
- else {
- bitly.url[type] = response.url;
- bitly.set(response.url);
- }
- },
- failure: function(o) {
- try {
- var response = YAHOO.lang.JSON.parse(o.responseText);
- if (response.error) {
- bitly.set(response.message);
- }
- else {
- bitly.set(o.statusText);
- }
- } catch (ex) {
- bitly.set(o.statusText);
- }
- }
+ $('#bitly-close')
+ .click(function(event) {
+ event.preventDefault();
+ popup.close();
});
- };
-
- bitly.set = function(value) {
- var el = Dom.get('bitly_url');
- el.value = value;
- el.select();
- el.focus();
- };
-
- bitly.toggle = function() {
- if (this.dialog
- && YAHOO.util.Dom.get('bitly_overlay').style.visibility == 'visible')
- {
- this.dialog.hide();
- }
- else {
- this.shorten();
- }
- };
-})();
+});