Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore options 31 #32

Closed
wants to merge 22 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
*.swp
node_modules
pkg
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to add .DS_Store

23 changes: 15 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,18 @@ Getting Started with Development
3. Fiddle with the code
4. Reload the extension page in Chrome

Developing with patronage
-------------------------

By default, the extension communicates with
[api.codesy.io](http://api.codesy.io). You should use the
[codesy-dev.herokuapp.com](https://codesy-dev.herokuapp.com) dev site while you
work on the extension. Configure the extension to use domain
`codesy-dev.herokuapp.com` in the extension Options.

Working with Gulp
=================

) node install gulp

) npm install to install dependencies

) gulp watch

Publish
=======

) gulp publish ot create zip for the chrome store

Binary file added css/.DS_Store
Binary file not shown.
7 changes: 6 additions & 1 deletion css/codesy.css
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
form#codesy input { width: 100%; margin-bottom: .5em; }
form#codesy_bid_form{
position: absolute;
background: silver;
margin-bottom: .5em;

}
38 changes: 38 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
var gulp = require('gulp');
var gutil = require('gulp-util');
var coffee = require('gulp-coffee');
var watch = require('gulp-watch')
var sourcemaps = require('gulp-sourcemaps');
var stripDebug = require('gulp-strip-debug');
var zip = require('gulp-zip');


gulp.task('default', function() {
// place code for your default task here
});
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's drop the default task


gulp.task('coffee', function() {
gulp.src('src/*.coffee')
.pipe(coffee({bare: true}).on('error', gutil.log))
.pipe(gulp.dest('js/'))
});

gulp.task('watch', function() {
gulp.watch('./src/*.coffee',['coffee'])
});

gulp.task('publish', function () {
gulp.src('js/*.js')
.pipe(stripDebug())
.pipe(gulp.dest('js/'))

gulp.src([
'css/*',
'img/*',
'js/*.js',
'manifest.json',
'options.html',
], {base: "."})
.pipe(zip('codesy.zip'))
.pipe(gulp.dest('pkg/'));
});
Binary file added js/.DS_Store
Binary file not shown.
235 changes: 130 additions & 105 deletions js/codesy.js
Original file line number Diff line number Diff line change
@@ -1,118 +1,143 @@
"use strict";
var codesy;

var codesy={};
console.time('codesy load');

(function (cdsy){
var pages = [
{ domain:/.github.com/i,
target:{selector:'.discussion-sidebar'},
before_append:function(){},
after_append:function(){}
codesy = {
options: {
form: {
heigth: 100,
width: 100
},
{ domain:/.bitbucket.org/i,
target:{selector:'dl.issue-attrs',
containers: ['<div class="issue-attr">'] }
},
{ domain:/.sourceforge.net/i,
target:{selector:'#sidebar',
containers:['<li>','<ul class="sidebarmenu">']
}
},
]

cdsy.options = {
endpoint: '/api',
version: '/v1',
domain: 'codesy-dev.herokuapp.com'
url: "https://api.codesy.io/"
},
form: null,
bid: {},
current: {
url: null
}
};

codesy.auth_token = function() {
if (codesy.options.auth_token) {
return codesy.options.auth_token;
} else {

cdsy.appendForm = function(mission,codesyImgUrl, csrfToken) {
var dfd = new $.Deferred(),

$codesy_link = $('<a href="http://codesy.io" target="_new"><img src="' + codesyImgUrl + '"/></a>' ),

$codesy_form = $('<form>'),

$submit_button = $('<button>')
.attr('class','button minibutton')
.text('Bid')
.click(function(){$codesy_form.submit();});

$codesy_form
.attr('id', 'codesy')
.attr('action', 'https://' + cdsy.options.domain + '/bids')
.attr('method', 'POST')
.append('<input name="authenticity_token" type="hidden" value="' + csrfToken + '" />')
.append('<input type="hidden" name="bid[url]" value="' + window.location + '" />')
.append('<input type="text" placeholder="offer amount" id="bid_offer" name="bid[offer]"/><br/>')
.append('<input type="text" placeholder="ask amount" id="bid_ask" name="bid[ask]"/><br/>')
.append($submit_button);

var $codesy_widget = $('<div id="codesy-widget" >')
.append('<hr/>')
.append($codesy_link)
.append($codesy_form);

if(mission.target.containers){
mission.target.containers.forEach(function(elem){
$codesy_widget = $(elem).append($codesy_widget)
})
}

$(mission.target.selector).first()
.append($codesy_widget)


if($('#codesy-widget').length > 0){
dfd.resolve()
} else {
dfd.reject()
}
};

codesy.bid.get = function(ajax_params) {
console.log('codesy: ' + codesy.options.auth_token);
ajax_params = ajax_params || {};
return $.ajax({
beforeSend: function(xhr, settings) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#38

return xhr.setRequestHeader("Authorization", "Token " + codesy.options.auth_token);
},
type: "get",
url: codesy.options.url + '/bid/',
data: ajax_params,
dataType: "html"
});
};

codesy.bid.update = function(form) {
form = form || {};
return $.ajax({
beforeSend: function(xhr, settings) {
return xhr.setRequestHeader("Authorization", "Token " + codesy.options.auth_token);
},
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize(),
dataType: "html",
success: function(data) {
return codesy.newpage();
},
error: function(err) {
console.log('codesy: bid update failed');
return console.log(err);
}

return dfd.promise()
});
};

codesy.isIssue = function(url) {
var rx;
console.log('codesy isIssue : ' + url);
rx = /https:\/\/github.com\/.*\/issues\/./g;
return rx.test(url);
};

codesy.positionForm = function() {
var footerLeft, footerTop;
footerTop = $(window).scrollTop() + $(window).height() - codesy.options.form.heigth;
footerLeft = $(window).width() - codesy.options.form.width;
if (($(document.body).height() + footerTop) > $(window).height()) {
return codesy.form.css({
position: "absolute",
top: footerTop,
left: footerLeft
});
} else {
return codesy.form.css({
position: "static",
top: footerTop,
left: footerLeft
});
}

cdsy.match = function(location){
var dfd = new $.Deferred(),
url = location.toString() || dfd.reject('No url defined')

pages.forEach(function(value){
if (value.domain.test(url)){
dfd.resolve(value);
}
})

return dfd.promise();
};

codesy.appendForm = function(form_html) {
var dfd;
dfd = new $.Deferred();
$("body").append(form_html);
if ($("#codesy_bid_form").length > 0) {
codesy.form = $("#codesy_bid_form");
codesy.positionForm();
codesy.form.submit(function(e) {
e.preventDefault();
codesy.bid.update(codesy.form);
return false;
});
$(window).scroll(codesy.positionForm).resize(codesy.positionForm);
dfd.resolve();
} else {
dfd.reject();
}
return dfd.promise();
};

codesy.newpage = function() {
$("#codesy_bid_form").remove();
if (codesy.isIssue(window.location.href)) {
console.log('codesy: needs bid form');
console.time("codesy: request form");
return codesy.bid.get({
url: window.location.href
}).done(function(data) {
console.timeEnd("codesy: request form");
return codesy.appendForm(data);
}).fail(function(data) {
console.timeEnd("codesy: request form");
console.log("codesy: $.ajax failed.");
return console.log(data);
});
}
};

//generic call
var call_api = function(resource, ajax_params) {
ajax_params = ajax_params || {};
return $.ajax({
type: "get",
url: "https://" + cdsy.options.domain + cdsy.options.endpoint + cdsy.options.version+resource,
data: ajax_params,
dataType: 'json'
})
};

function API(domain){
cdsy.options.domain = domain || cdsy.options.domain;
var call_map = [
['csrf_token','/csrf_token.json'],
['bids', '/bids.json']
];
call_map.forEach(function(value) {
this.prototype[value[0]] = function(params) {
return call_api(value[1], params)
}
},API);

}

cdsy.api = new API;
chrome.storage.local.get(function(data) {
codesy.options.auth_token = data.auth_token;
return codesy.newpage();
});

}(codesy));
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
console.log("codesy: xhr received");
if (msg.url) {
return codesy.newpage();
}
});

window.onpopstate = function() {
console.log("codesy: popstate");
return codesy.newpage();
};

console.timeEnd('codesy load');
10 changes: 10 additions & 0 deletions js/codesy.map
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"version": 3,
"file": "codesy.js",
"sourceRoot": "..",
"sources": [
"js/codesy.coffee"
],
"names": [],
"mappings": "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"
}
59 changes: 0 additions & 59 deletions js/launch.js

This file was deleted.