Full-alphasort of the repos in the create issue dialog
I have a sneaking suspicion that this is overly CPU intensive. Fixes #72
This commit is contained in:
parent
71aa4b4fc4
commit
a3015d3ed3
|
@ -1,51 +1,43 @@
|
|||
smalltalk.addPackage('Hubboard', {});
|
||||
smalltalk.addClass('IssueTile', smalltalk.Widget, ['raw', 'title', 'body', 'issueId', 'number', 'project', 'projectOwner', 'issueStatus', 'comments', 'fullProjectName', 'elementId', 'model'], 'Hubboard');
|
||||
smalltalk.addClass('HBDialog', smalltalk.Widget, ['modal', 'minWidth', 'draggable', 'elementId', 'position', 'maxHeight'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderOn_'),
|
||||
unescape('_becomeDialog'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderOn%3A'),
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
(function($rec){smalltalk.send($rec, "_class_", ["issuetile"]);smalltalk.send($rec, "_id_", [smalltalk.send(self, "_elementId", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-project"), smalltalk.send(self['@model'], "_projectName", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-issueid"), smalltalk.send(self['@model'], "_issueId", [])]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderHeader_", [html]);(function($rec){smalltalk.send($rec, "_class_", ["title"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_title", [])]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["labels"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderLabels_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_postRender", []);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_parseUrl_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('parseUrl%3A'),
|
||||
fn: function (aUrl){
|
||||
var self=this;
|
||||
var parts=nil;
|
||||
(parts=aUrl.split('/'));
|
||||
return smalltalk.HashedCollection._fromPairs_([smalltalk.send("owner", "__minus_gt", [smalltalk.send(parts, "_at_", [(4)])]),smalltalk.send("project", "__minus_gt", [smalltalk.send(parts, "_at_", [(5)])])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setOpen'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setOpen'),
|
||||
selector: unescape('becomeDialog'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("open"));
|
||||
return smalltalk.send(self, "_becomeDialog_", [(function(){return nil;})]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setInProgress'),
|
||||
unescape('_initialize'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setInProgress'),
|
||||
selector: unescape('initialize'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("inprogress"));
|
||||
smalltalk.send(self, "_initialize", [], smalltalk.Widget);
|
||||
(self['@modal']=true);
|
||||
(self['@minWidth']=(500));
|
||||
(self['@maxHeight']=(500));
|
||||
(self['@draggable']=false);
|
||||
(self['@position']="center");
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog%3A'),
|
||||
fn: function (aBlockCallback){
|
||||
var self=this;
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dialog_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("modal", "__minus_gt", [self['@modal']]),smalltalk.send("minWidth", "__minus_gt", [self['@minWidth']]),smalltalk.send("maxHeight", "__minus_gt", [self['@maxHeight']]),smalltalk.send("draggable", "__minus_gt", [self['@draggable']]),smalltalk.send("position", "__minus_gt", [self['@position']]),smalltalk.send("close", "__minus_gt", [(function(event, ui){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_remove", []);})])])]);
|
||||
smalltalk.send(aBlockCallback, "_value", []);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_elementId'),
|
||||
|
@ -53,133 +45,10 @@ smalltalk.method({
|
|||
selector: unescape('elementId'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return (($receiver = self['@elementId']) == nil || $receiver == undefined) ? (function(){return (self['@elementId']=smalltalk.send("issuetile_", "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_issueId", []), "_asString", [])]));})() : $receiver;
|
||||
return smalltalk.send(unescape("%23"), "__comma", [self['@elementId']]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_moveTo_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('moveTo%3A'),
|
||||
fn: function (aColumnId){
|
||||
var self=this;
|
||||
try{var postData=nil;
|
||||
var successBlock=nil;
|
||||
var url=nil;
|
||||
(postData=smalltalk.HashedCollection._fromPairs_([smalltalk.send("project", "__minus_gt", [smalltalk.send(self['@model'], "_projectName", [])])]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["inprogressissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["openissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["closedissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})]));
|
||||
(($receiver = url) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_showSpinner", []);smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [url, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["POST"]),smalltalk.send("dataType", "__minus_gt", ["json"]),smalltalk.send("data", "__minus_gt", [smalltalk.send(postData, "_asJSONString", [])]),smalltalk.send("success", "__minus_gt", [(function(){(($receiver = successBlock) != nil && $receiver != undefined) ? (function(){return smalltalk.send(successBlock, "_value", []);})() : nil;smalltalk.send(self, "_updateHeaderClass", []);return smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);})]),smalltalk.send("error", "__minus_gt", [(function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);return smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", ["fail"]);})])])]);return (function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return true}})})();})() : nil;
|
||||
(function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return false}})})();
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_moveTo_'){return e.fn()} throw(e)}}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setClosed'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setClosed'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("closed"));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", ["disable"]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_numberClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('numberClass'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var numberClass=nil;
|
||||
(numberClass="number");
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("open")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("inprogress")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})]));
|
||||
return numberClass;
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_postRender'),
|
||||
smalltalk.method({
|
||||
selector: unescape('postRender'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})]));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dblclick_", [(function(event){return smalltalk.send(self, "_viewIssue_", [event]);})]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_updateHeaderClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('updateHeaderClass'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var element=nil;
|
||||
(element=smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "__comma", [unescape("%20%3E%20div.number")]), "_asJQuery", []));
|
||||
smalltalk.send(element, "_removeClass", []);
|
||||
smalltalk.send(element, "_addClass_", [smalltalk.send(self, "_numberClass", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_withModel_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('withModel%3A'),
|
||||
fn: function (anIssue){
|
||||
var self=this;
|
||||
(self['@model']=anIssue);
|
||||
(self['@number']=smalltalk.send(anIssue, "_number", []));
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_model'),
|
||||
smalltalk.method({
|
||||
selector: unescape('model'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return self['@model'];
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_addComment_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('addComment%3A'),
|
||||
fn: function (clickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.CommentDialog || CommentDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_viewIssue_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('viewIssue%3A'),
|
||||
fn: function (onClickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.IssueDetailDialog || IssueDetailDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_asJQuery'),
|
||||
|
@ -187,42 +56,27 @@ smalltalk.method({
|
|||
selector: unescape('asJQuery'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "_asJQuery", []);
|
||||
return smalltalk.send(smalltalk.send(self, "_elementId", []), "_asJQuery", []);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderHeader_'),
|
||||
unescape('_show'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderHeader%3A'),
|
||||
fn: function (html){
|
||||
selector: unescape('show'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(function($rec){smalltalk.send($rec, "_class_", [smalltalk.send(self, "_numberClass", [])]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_url", [])]);smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_with_", [smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_number", []), "_asString", [])])]);return smalltalk.send($rec, "_onClick_", [(function(event){smalltalk.send(self, "_viewIssue_", [event]);return smalltalk.send(event, "_preventDefault", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [" in "]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectOwner", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_projectOwner", [])]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [unescape("%20/%20")]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectName", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_project", [])]);})(smalltalk.send(html, "_a", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3Aright%3B")]);smalltalk.send($rec, "_class_", ["comments"]);return smalltalk.send($rec, "_with_", [(function(){(($receiver = smalltalk.send(self['@model'], "_pullRequest", [])) != nil && $receiver != undefined) ? (function(){return (function($rec){smalltalk.send($rec, "_class_", ["pull_req"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_pullRequest", [])]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(html, "_img", []), "_src_", [unescape("/images/pull_request.png")]);})]);})(smalltalk.send(html, "_a", []));return smalltalk.send(html, "_with_", ["Code Attached"]);})]);})(smalltalk.send(html, "_span", []));})() : nil;smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_comments", []), "_asString", []), "__comma", [" comments"])]);return (function($rec){smalltalk.send($rec, "_class_", ["add_comment"]);smalltalk.send($rec, "_title_", ["Add Comment"]);smalltalk.send($rec, "_with_", [unescape("+")]);return smalltalk.send($rec, "_onClick_", [(function(event){return smalltalk.send(self, "_addComment_", [event]);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderLabels_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderLabels%3A'),
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
try{var rendered=nil;
|
||||
(rendered=false);
|
||||
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_size", []), "__eq", [(0)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})]));
|
||||
smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_do_", [(function(label){var labelName=nil;
|
||||
(labelName=smalltalk.send(label, "_at_", ["name"]));return ((($receiver = smalltalk.send(labelName, "__eq", [unescape("in-progress")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})]));})]);
|
||||
((($receiver = rendered).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})]));
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_renderLabels_'){return e.fn()} throw(e)}}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog.klass);
|
||||
|
||||
|
||||
|
||||
smalltalk.addClass('HubboardApp', smalltalk.Object, ['token', 'issueMap', 'issueApi', 'userApi', 'knownRepos', 'userData', 'refreshIntervalId', 'currentProject', 'refreshInterval', 'sortedRepos', 'assignedProjects'], 'Hubboard');
|
||||
smalltalk.addClass('HubboardApp', smalltalk.Object, ['token', 'issueMap', 'issueApi', 'userApi', 'knownRepos', 'userData', 'refreshIntervalId', 'currentProject', 'refreshInterval', 'sortedRepos', 'assignedProjects', 'alphasortedRepos'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_initialize'),
|
||||
smalltalk.method({
|
||||
|
@ -505,6 +359,18 @@ return self;}
|
|||
}),
|
||||
smalltalk.HubboardApp);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_alphasortedRepos'),
|
||||
smalltalk.method({
|
||||
selector: unescape('alphasortedRepos'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return (($receiver = self['@alphasortedRepos']) == nil || $receiver == undefined) ? (function(){var names=nil;
|
||||
(names=smalltalk.send(self['@knownRepos'], "_keys", []));return (self['@alphasortedRepos']=smalltalk.send(names, "_sort_", [(function(left, right){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [left]), "_at_", ["name"]), "_asLowercase", [])).klass === smalltalk.Number) ? $receiver <smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [right]), "_at_", ["name"]), "_asLowercase", []) : smalltalk.send($receiver, "__lt", [smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [right]), "_at_", ["name"]), "_asLowercase", [])]));})]));})() : $receiver;
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HubboardApp);
|
||||
|
||||
|
||||
smalltalk.HubboardApp.klass.iVarNames = ['current'];
|
||||
smalltalk.addMethod(
|
||||
|
@ -519,45 +385,53 @@ return self;}
|
|||
smalltalk.HubboardApp.klass);
|
||||
|
||||
|
||||
smalltalk.addClass('HBDialog', smalltalk.Widget, ['modal', 'minWidth', 'draggable', 'elementId', 'position', 'maxHeight'], 'Hubboard');
|
||||
smalltalk.addClass('IssueTile', smalltalk.Widget, ['raw', 'title', 'body', 'issueId', 'number', 'project', 'projectOwner', 'issueStatus', 'comments', 'fullProjectName', 'elementId', 'model'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog'),
|
||||
unescape('_renderOn_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog'),
|
||||
fn: function (){
|
||||
selector: unescape('renderOn%3A'),
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
return smalltalk.send(self, "_becomeDialog_", [(function(){return nil;})]);
|
||||
(function($rec){smalltalk.send($rec, "_class_", ["issuetile"]);smalltalk.send($rec, "_id_", [smalltalk.send(self, "_elementId", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-project"), smalltalk.send(self['@model'], "_projectName", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-issueid"), smalltalk.send(self['@model'], "_issueId", [])]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderHeader_", [html]);(function($rec){smalltalk.send($rec, "_class_", ["title"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_title", [])]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["labels"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderLabels_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_postRender", []);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_initialize'),
|
||||
unescape('_parseUrl_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('initialize'),
|
||||
fn: function (){
|
||||
selector: unescape('parseUrl%3A'),
|
||||
fn: function (aUrl){
|
||||
var self=this;
|
||||
smalltalk.send(self, "_initialize", [], smalltalk.Widget);
|
||||
(self['@modal']=true);
|
||||
(self['@minWidth']=(500));
|
||||
(self['@maxHeight']=(500));
|
||||
(self['@draggable']=false);
|
||||
(self['@position']="center");
|
||||
var parts=nil;
|
||||
(parts=aUrl.split('/'));
|
||||
return smalltalk.HashedCollection._fromPairs_([smalltalk.send("owner", "__minus_gt", [smalltalk.send(parts, "_at_", [(4)])]),smalltalk.send("project", "__minus_gt", [smalltalk.send(parts, "_at_", [(5)])])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog_'),
|
||||
unescape('_setOpen'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog%3A'),
|
||||
fn: function (aBlockCallback){
|
||||
selector: unescape('setOpen'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dialog_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("modal", "__minus_gt", [self['@modal']]),smalltalk.send("minWidth", "__minus_gt", [self['@minWidth']]),smalltalk.send("maxHeight", "__minus_gt", [self['@maxHeight']]),smalltalk.send("draggable", "__minus_gt", [self['@draggable']]),smalltalk.send("position", "__minus_gt", [self['@position']]),smalltalk.send("close", "__minus_gt", [(function(event, ui){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_remove", []);})])])]);
|
||||
smalltalk.send(aBlockCallback, "_value", []);
|
||||
(self['@issueStatus']=smalltalk.symbolFor("open"));
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setInProgress'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setInProgress'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("inprogress"));
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_elementId'),
|
||||
|
@ -565,10 +439,133 @@ smalltalk.method({
|
|||
selector: unescape('elementId'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(unescape("%23"), "__comma", [self['@elementId']]);
|
||||
return (($receiver = self['@elementId']) == nil || $receiver == undefined) ? (function(){return (self['@elementId']=smalltalk.send("issuetile_", "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_issueId", []), "_asString", [])]));})() : $receiver;
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_moveTo_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('moveTo%3A'),
|
||||
fn: function (aColumnId){
|
||||
var self=this;
|
||||
try{var postData=nil;
|
||||
var successBlock=nil;
|
||||
var url=nil;
|
||||
(postData=smalltalk.HashedCollection._fromPairs_([smalltalk.send("project", "__minus_gt", [smalltalk.send(self['@model'], "_projectName", [])])]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["inprogressissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["openissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["closedissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})]));
|
||||
(($receiver = url) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_showSpinner", []);smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [url, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["POST"]),smalltalk.send("dataType", "__minus_gt", ["json"]),smalltalk.send("data", "__minus_gt", [smalltalk.send(postData, "_asJSONString", [])]),smalltalk.send("success", "__minus_gt", [(function(){(($receiver = successBlock) != nil && $receiver != undefined) ? (function(){return smalltalk.send(successBlock, "_value", []);})() : nil;smalltalk.send(self, "_updateHeaderClass", []);return smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);})]),smalltalk.send("error", "__minus_gt", [(function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);return smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", ["fail"]);})])])]);return (function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return true}})})();})() : nil;
|
||||
(function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return false}})})();
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_moveTo_'){return e.fn()} throw(e)}}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setClosed'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setClosed'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("closed"));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", ["disable"]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_numberClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('numberClass'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var numberClass=nil;
|
||||
(numberClass="number");
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("open")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("inprogress")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})]));
|
||||
return numberClass;
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_postRender'),
|
||||
smalltalk.method({
|
||||
selector: unescape('postRender'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})]));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dblclick_", [(function(event){return smalltalk.send(self, "_viewIssue_", [event]);})]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_updateHeaderClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('updateHeaderClass'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var element=nil;
|
||||
(element=smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "__comma", [unescape("%20%3E%20div.number")]), "_asJQuery", []));
|
||||
smalltalk.send(element, "_removeClass", []);
|
||||
smalltalk.send(element, "_addClass_", [smalltalk.send(self, "_numberClass", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_withModel_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('withModel%3A'),
|
||||
fn: function (anIssue){
|
||||
var self=this;
|
||||
(self['@model']=anIssue);
|
||||
(self['@number']=smalltalk.send(anIssue, "_number", []));
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_model'),
|
||||
smalltalk.method({
|
||||
selector: unescape('model'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return self['@model'];
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_addComment_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('addComment%3A'),
|
||||
fn: function (clickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.CommentDialog || CommentDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_viewIssue_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('viewIssue%3A'),
|
||||
fn: function (onClickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.IssueDetailDialog || IssueDetailDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_asJQuery'),
|
||||
|
@ -576,24 +573,39 @@ smalltalk.method({
|
|||
selector: unescape('asJQuery'),
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(smalltalk.send(self, "_elementId", []), "_asJQuery", []);
|
||||
return smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "_asJQuery", []);
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_show'),
|
||||
unescape('_renderHeader_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('show'),
|
||||
fn: function (){
|
||||
selector: unescape('renderHeader%3A'),
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
(function($rec){smalltalk.send($rec, "_class_", [smalltalk.send(self, "_numberClass", [])]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_url", [])]);smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_with_", [smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_number", []), "_asString", [])])]);return smalltalk.send($rec, "_onClick_", [(function(event){smalltalk.send(self, "_viewIssue_", [event]);return smalltalk.send(event, "_preventDefault", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [" in "]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectOwner", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_projectOwner", [])]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [unescape("%20/%20")]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectName", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_project", [])]);})(smalltalk.send(html, "_a", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3Aright%3B")]);smalltalk.send($rec, "_class_", ["comments"]);return smalltalk.send($rec, "_with_", [(function(){(($receiver = smalltalk.send(self['@model'], "_pullRequest", [])) != nil && $receiver != undefined) ? (function(){return (function($rec){smalltalk.send($rec, "_class_", ["pull_req"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_pullRequest", [])]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(html, "_img", []), "_src_", [unescape("/images/pull_request.png")]);})]);})(smalltalk.send(html, "_a", []));return smalltalk.send(html, "_with_", ["Code Attached"]);})]);})(smalltalk.send(html, "_span", []));})() : nil;smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_comments", []), "_asString", []), "__comma", [" comments"])]);return (function($rec){smalltalk.send($rec, "_class_", ["add_comment"]);smalltalk.send($rec, "_title_", ["Add Comment"]);smalltalk.send($rec, "_with_", [unescape("+")]);return smalltalk.send($rec, "_onClick_", [(function(event){return smalltalk.send(self, "_addComment_", [event]);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
return self;}
|
||||
}),
|
||||
smalltalk.HBDialog.klass);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderLabels_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderLabels%3A'),
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
try{var rendered=nil;
|
||||
(rendered=false);
|
||||
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_size", []), "__eq", [(0)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})]));
|
||||
smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_do_", [(function(label){var labelName=nil;
|
||||
(labelName=smalltalk.send(label, "_at_", ["name"]));return ((($receiver = smalltalk.send(labelName, "__eq", [unescape("in-progress")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})]));})]);
|
||||
((($receiver = rendered).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})]));
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_renderLabels_'){return e.fn()} throw(e)}}
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
|
||||
|
||||
smalltalk.addClass('NewIssueDialog', smalltalk.HBDialog, [], 'Hubboard');
|
||||
|
@ -605,7 +617,7 @@ fn: function (html){
|
|||
var self=this;
|
||||
var currentUser=nil;
|
||||
(currentUser=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_user", []), "_at_", ["login"]));
|
||||
(function($rec){smalltalk.send($rec, "_at_put_", ["title", "Create a new issue"]);smalltalk.send($rec, "_id_", [self['@elementId']]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_name_", ["new_issue_form"]);smalltalk.send($rec, "_onSubmit_", [(function(event){smalltalk.send(self, "_submit", []);return smalltalk.send(event, "_preventDefault", []);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_for_", ["assignee"]);return smalltalk.send($rec, "_with_", ["Assign to: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["assignee"]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [currentUser]);return smalltalk.send($rec, "_with_", [currentUser]);})(smalltalk.send(html, "_option", []));})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["project"]);return smalltalk.send($rec, "_with_", ["Project: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["project"]);smalltalk.send($rec, "_onChange_", [(function(event){return smalltalk.send(self, "_updateCollaborators", []);})]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_sortedRepos", []), "_do_", [(function(repo){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_currentProject", []), "__eq", [repo])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));})() : (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));}), (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})]));})]);})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["title"]);return smalltalk.send($rec, "_with_", ["Title: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["title"]);return smalltalk.send($rec, "_at_put_", ["size", "40"]);})(smalltalk.send(html, "_input", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_with_", ["Add body"]);smalltalk.send($rec, "_class_", [unescape("dialog-add-body")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(smalltalk.send(unescape("%23dialog-body"), "_asJQuery", []), "_show", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_id_", [unescape("dialog-body")]);smalltalk.send($rec, "_style_", [unescape("display%3A%20none%3B")]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(html, "_with_", [(function($rec){smalltalk.send($rec, "_setName_", ["body"]);smalltalk.send($rec, "_setColumns_", [(40)]);return smalltalk.send($rec, "_setRows_", [(8)]);})(smalltalk.send((smalltalk.MarkdownTextArea || MarkdownTextArea), "_new", []))]);return smalltalk.send(html, "_br", []);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3A%20right%3B")]);smalltalk.send($rec, "_type_", ["submit"]);return smalltalk.send($rec, "_with_", ["Create"]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_form", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
(function($rec){smalltalk.send($rec, "_at_put_", ["title", "Create a new issue"]);smalltalk.send($rec, "_id_", [self['@elementId']]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_name_", ["new_issue_form"]);smalltalk.send($rec, "_onSubmit_", [(function(event){smalltalk.send(self, "_submit", []);return smalltalk.send(event, "_preventDefault", []);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_for_", ["assignee"]);return smalltalk.send($rec, "_with_", ["Assign to: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["assignee"]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [currentUser]);return smalltalk.send($rec, "_with_", [currentUser]);})(smalltalk.send(html, "_option", []));})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["project"]);return smalltalk.send($rec, "_with_", ["Project: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["project"]);smalltalk.send($rec, "_onChange_", [(function(event){return smalltalk.send(self, "_updateCollaborators", []);})]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_alphasortedRepos", []), "_do_", [(function(repo){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_currentProject", []), "__eq", [repo])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));})() : (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));}), (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})]));})]);})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["title"]);return smalltalk.send($rec, "_with_", ["Title: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["title"]);return smalltalk.send($rec, "_at_put_", ["size", "40"]);})(smalltalk.send(html, "_input", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_with_", ["Add body"]);smalltalk.send($rec, "_class_", [unescape("dialog-add-body")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(smalltalk.send(unescape("%23dialog-body"), "_asJQuery", []), "_show", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_id_", [unescape("dialog-body")]);smalltalk.send($rec, "_style_", [unescape("display%3A%20none%3B")]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(html, "_with_", [(function($rec){smalltalk.send($rec, "_setName_", ["body"]);smalltalk.send($rec, "_setColumns_", [(40)]);return smalltalk.send($rec, "_setRows_", [(8)]);})(smalltalk.send((smalltalk.MarkdownTextArea || MarkdownTextArea), "_new", []))]);return smalltalk.send(html, "_br", []);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3A%20right%3B")]);smalltalk.send($rec, "_type_", ["submit"]);return smalltalk.send($rec, "_with_", ["Create"]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_form", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_becomeDialog_", [(function(){return smalltalk.send(smalltalk.send(unescape("%3Ainput%5Bname%3Dtitle%5D"), "_asJQuery", []), "_focus", []);})]);
|
||||
return self;}
|
||||
}),
|
||||
|
|
649
js/Hubboard.js
649
js/Hubboard.js
|
@ -1,71 +1,58 @@
|
|||
smalltalk.addPackage('Hubboard', {});
|
||||
smalltalk.addClass('IssueTile', smalltalk.Widget, ['raw', 'title', 'body', 'issueId', 'number', 'project', 'projectOwner', 'issueStatus', 'comments', 'fullProjectName', 'elementId', 'model'], 'Hubboard');
|
||||
smalltalk.addClass('HBDialog', smalltalk.Widget, ['modal', 'minWidth', 'draggable', 'elementId', 'position', 'maxHeight'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderOn_'),
|
||||
unescape('_becomeDialog'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderOn%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
(function($rec){smalltalk.send($rec, "_class_", ["issuetile"]);smalltalk.send($rec, "_id_", [smalltalk.send(self, "_elementId", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-project"), smalltalk.send(self['@model'], "_projectName", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-issueid"), smalltalk.send(self['@model'], "_issueId", [])]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderHeader_", [html]);(function($rec){smalltalk.send($rec, "_class_", ["title"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_title", [])]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["labels"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderLabels_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_postRender", []);
|
||||
return self;},
|
||||
args: ["html"],
|
||||
source: unescape('renderOn%3A%20html%0A%09html%20div%0A%09%09class%3A%20%27issuetile%27%3B%0A%09%09id%3A%20self%20elementId%3B%0A%09%09at%3A%20%27data-project%27%20put%3A%20%28model%20projectName%29%3B%0A%09%09at%3A%20%27data-issueid%27%20put%3A%20%28model%20issueId%29%3B%0A%09%09with%3A%20%5B%0A%09%09%09self%20renderHeader%3A%20html.%0A%09%09%09html%20div%20class%3A%20%27title%27%3B%20with%3A%20%28model%20title%29.%0A%09%09%09html%20div%20class%3A%20%27labels%27%3B%20with%3A%20%5B%20self%20renderLabels%3A%20html%20%5D%0A%09%09%5D.%0A%09self%20postRender.'),
|
||||
messageSends: ["class:", "id:", "elementId", "at:put:", "projectName", "issueId", "with:", "renderHeader:", "title", "div", "renderLabels:", "postRender"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_parseUrl_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('parseUrl%3A'),
|
||||
category: 'not yet classified',
|
||||
fn: function (aUrl){
|
||||
var self=this;
|
||||
var parts=nil;
|
||||
(parts=aUrl.split('/'));
|
||||
return smalltalk.HashedCollection._fromPairs_([smalltalk.send("owner", "__minus_gt", [smalltalk.send(parts, "_at_", [(4)])]),smalltalk.send("project", "__minus_gt", [smalltalk.send(parts, "_at_", [(5)])])]);
|
||||
return self;},
|
||||
args: ["aUrl"],
|
||||
source: unescape('parseUrl%3A%20aUrl%0A%09%22Return%20a%20Hash%20with%20the%20%27owner%27%20and%20%27project%27%20based%20on%20the%20given%20Issue%20URL%22%0A%09%7C%20parts%20%7C%0A%09parts%20%3A%3D%20%3CaUrl.split%28%27/%27%29%3E.%0A%09%0A%09%5E%20%23%7B%27owner%27%20-%3E%20%28parts%20at%3A%204%29.%0A%09%09%27project%27%20-%3E%20%28parts%20at%3A%205%29%7D.'),
|
||||
messageSends: [unescape("-%3E"), "at:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setOpen'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setOpen'),
|
||||
category: 'actions',
|
||||
selector: unescape('becomeDialog'),
|
||||
category: 'dialog-helpers',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("open"));
|
||||
return smalltalk.send(self, "_becomeDialog_", [(function(){return nil;})]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('setOpen%0A%09%22Set%20this%20issue%20as%20an%20open%20issue%22%0A%09issueStatus%20%3A%3D%20%23open.'),
|
||||
messageSends: [],
|
||||
source: unescape('becomeDialog%0A%09%5E%20self%20becomeDialog%3A%20%5B%5D.'),
|
||||
messageSends: ["becomeDialog:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setInProgress'),
|
||||
unescape('_initialize'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setInProgress'),
|
||||
category: 'actions',
|
||||
selector: unescape('initialize'),
|
||||
category: 'initializers',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("inprogress"));
|
||||
smalltalk.send(self, "_initialize", [], smalltalk.Widget);
|
||||
(self['@modal']=true);
|
||||
(self['@minWidth']=(500));
|
||||
(self['@maxHeight']=(500));
|
||||
(self['@draggable']=false);
|
||||
(self['@position']="center");
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('setInProgress%0A%09%22Set%20this%20issue%20as%20an%20inprogress%20issue%22%0A%09issueStatus%20%3A%3D%20%23inprogress.'),
|
||||
messageSends: [],
|
||||
source: unescape('initialize%0A%09super%20initialize.%0A%09modal%20%3A%3D%20true.%0A%09minWidth%20%3A%3D%20500.%0A%09maxHeight%20%3A%3D%20500.%0A%09draggable%20%3A%3D%20false.%0A%09position%20%3A%3D%20%27center%27.'),
|
||||
messageSends: ["initialize"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog%3A'),
|
||||
category: 'dialog-helpers',
|
||||
fn: function (aBlockCallback){
|
||||
var self=this;
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dialog_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("modal", "__minus_gt", [self['@modal']]),smalltalk.send("minWidth", "__minus_gt", [self['@minWidth']]),smalltalk.send("maxHeight", "__minus_gt", [self['@maxHeight']]),smalltalk.send("draggable", "__minus_gt", [self['@draggable']]),smalltalk.send("position", "__minus_gt", [self['@position']]),smalltalk.send("close", "__minus_gt", [(function(event, ui){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_remove", []);})])])]);
|
||||
smalltalk.send(aBlockCallback, "_value", []);
|
||||
return self;},
|
||||
args: ["aBlockCallback"],
|
||||
source: unescape('becomeDialog%3A%20aBlockCallback%0A%09self%20asJQuery%20dialog%3A%20%23%7B%0A%09%09%09%27modal%27%20-%3E%20modal.%0A%09%09%09%27minWidth%27%20-%3E%20minWidth.%0A%09%09%09%27maxHeight%27%20-%3E%20maxHeight.%0A%09%09%09%27draggable%27%20-%3E%20draggable.%0A%09%09%09%27position%27%20-%3E%20position.%0A%09%09%09%27close%27%20-%3E%20%5B%20%3Aevent%20%3Aui%20%7C%0A%09%09%09%09self%20asJQuery%20remove.%0A%09%09%09%5D%7D.%0A%09aBlockCallback%20value.'),
|
||||
messageSends: ["dialog:", "asJQuery", unescape("-%3E"), "remove", "value"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_elementId'),
|
||||
|
@ -74,182 +61,14 @@ selector: unescape('elementId'),
|
|||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return (($receiver = self['@elementId']) == nil || $receiver == undefined) ? (function(){return (self['@elementId']=smalltalk.send("issuetile_", "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_issueId", []), "_asString", [])]));})() : $receiver;
|
||||
return smalltalk.send(unescape("%23"), "__comma", [self['@elementId']]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('elementId%0A%09%5E%20elementId%20ifNil%3A%20%5B%20elementId%20%3A%3D%20%27issuetile_%27%2C%20%28model%20issueId%20asString%29%20%5D.'),
|
||||
messageSends: ["ifNil:", unescape("%2C"), "asString", "issueId"],
|
||||
source: unescape('elementId%0A%09%5E%20%28%27%23%27%2C%20elementId%29.'),
|
||||
messageSends: [unescape("%2C")],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_moveTo_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('moveTo%3A'),
|
||||
category: 'not yet classified',
|
||||
fn: function (aColumnId){
|
||||
var self=this;
|
||||
try{var postData=nil;
|
||||
var successBlock=nil;
|
||||
var url=nil;
|
||||
(postData=smalltalk.HashedCollection._fromPairs_([smalltalk.send("project", "__minus_gt", [smalltalk.send(self['@model'], "_projectName", [])])]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["inprogressissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["openissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["closedissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})]));
|
||||
(($receiver = url) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_showSpinner", []);smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [url, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["POST"]),smalltalk.send("dataType", "__minus_gt", ["json"]),smalltalk.send("data", "__minus_gt", [smalltalk.send(postData, "_asJSONString", [])]),smalltalk.send("success", "__minus_gt", [(function(){(($receiver = successBlock) != nil && $receiver != undefined) ? (function(){return smalltalk.send(successBlock, "_value", []);})() : nil;smalltalk.send(self, "_updateHeaderClass", []);return smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);})]),smalltalk.send("error", "__minus_gt", [(function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);return smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", ["fail"]);})])])]);return (function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return true}})})();})() : nil;
|
||||
(function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return false}})})();
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_moveTo_'){return e.fn()} throw(e)}},
|
||||
args: ["aColumnId"],
|
||||
source: unescape('moveTo%3A%20aColumnId%0A%09%22Handle%20the%20invocation%20of%20the%20right%20callbacks%20when%20we%20move%20from%20one%20column%20to%20another%0A%09%20The%20lines%20blur%20a%20bit%20here%20on%20%27view%27%20versus%20%27controller%27%22%0A%09%7C%20postData%20successBlock%20url%20%7C%0A%09postData%20%3A%3D%20%23%7B%27project%27%20-%3E%20model%20projectName%20%7D.%0A%0A%0A%09aColumnId%20%3D%20%27inprogressissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/label%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setInProgress.%20%5D.%0A%09%5D.%0A%09aColumnId%20%3D%20%27openissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/revert%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setOpen%20%5D%0A%09%5D.%0A%09aColumnId%20%3D%20%27closedissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/close%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setClosed%20%5D.%0A%09%5D.%0A%09%0A%09url%20ifNotNil%3A%20%5B%0A%09%09HubboardApp%20current%20showSpinner.%0A%09%09jQuery%20ajax%3A%20url%0A%09%09%09%09options%3A%20%23%7B%0A%09%09%09%09%09%27type%27%20-%3E%20%27POST%27.%0A%09%09%09%09%09%27dataType%27%20-%3E%20%27json%27.%0A%09%09%09%09%09%27data%27%20-%3E%20postData%20asJSONString.%0A%09%09%09%09%09%27success%27%20-%3E%20%5B%0A%09%09%09%09%09%09successBlock%20ifNotNil%3A%20%5B%20successBlock%20value%20%5D.%0A%09%09%09%09%09%09self%20updateHeaderClass.%0A%09%09%09%09%09%09HubboardApp%20current%20hideSpinner.%0A%09%09%09%09%09%5D.%0A%09%09%09%09%09%27error%27%20-%3E%20%5B%20HubboardApp%20current%20hideSpinner.%20console%20log%3A%20%27fail%27%5D%0A%09%09%09%09%09%7D.%0A%09%09%5E%20true.%0A%09%5D.%0A%09%5E%20false.'),
|
||||
messageSends: [unescape("-%3E"), "projectName", "ifTrue:", unescape("%3D"), unescape("%2C"), "setInProgress", "setOpen", "setClosed", "ifNotNil:", "showSpinner", "current", "ajax:options:", "asJSONString", "value", "updateHeaderClass", "hideSpinner", "log:"],
|
||||
referencedClasses: ["HubboardApp"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setClosed'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setClosed'),
|
||||
category: 'actions',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("closed"));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", ["disable"]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('setClosed%0A%09%22Set%20this%20issue%20as%20a%20closed%20issue%2C%20should%20not%20be%20draggable%20as%20a%20result%22%0A%09issueStatus%20%3A%3D%20%23closed.%0A%09self%20asJQuery%20draggable%3A%20%27disable%27.'),
|
||||
messageSends: ["draggable:", "asJQuery"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_numberClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('numberClass'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var numberClass=nil;
|
||||
(numberClass="number");
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("open")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("inprogress")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})]));
|
||||
return numberClass;
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('numberClass%0A%09%7C%20numberClass%20%7C%0A%09numberClass%20%3A%3D%20%27number%27.%0A%09issueStatus%20%3D%20%23open%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20open%27%20%5D.%20%0A%09issueStatus%20%3D%20%23inprogress%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20inprogress%27%20%5D.%20%0A%09issueStatus%20%3D%20%23closed%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20closed%27%5D.%0A%09%5E%20numberClass.'),
|
||||
messageSends: ["ifTrue:", unescape("%3D"), unescape("%2C")],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_postRender'),
|
||||
smalltalk.method({
|
||||
selector: unescape('postRender'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})]));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dblclick_", [(function(event){return smalltalk.send(self, "_viewIssue_", [event]);})]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('postRender%0A%09%22Run%20actions%20after%20we%27ve%20rendered%20the%20DOM%20elements%20%22%0A%0A%09%22Make%20the%20tile%20draggable%22%0A%09issueStatus%20%3D%20%23closed%20ifFalse%3A%20%5B%20self%20asJQuery%20draggable%3A%20%23%7B%27zIndex%27%20-%3E%20%2710000%27.%20%27snap%27%20-%3E%20true%20%7D%5D.%0A%0A%09%22Make%20ourselves%20double-clickable%22%0A%09self%20asJQuery%20dblclick%3A%20%5B%20%3Aevent%20%7C%20self%20viewIssue%3A%20event%20%5D.'),
|
||||
messageSends: ["ifFalse:", unescape("%3D"), "draggable:", "asJQuery", unescape("-%3E"), "dblclick:", "viewIssue:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_updateHeaderClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('updateHeaderClass'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var element=nil;
|
||||
(element=smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "__comma", [unescape("%20%3E%20div.number")]), "_asJQuery", []));
|
||||
smalltalk.send(element, "_removeClass", []);
|
||||
smalltalk.send(element, "_addClass_", [smalltalk.send(self, "_numberClass", [])]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('updateHeaderClass%0A%09%7Celement%20%7C%0A%09element%20%3A%3D%20%28%27%23%27%2C%20self%20elementId%2C%20%27%20%3E%20div.number%27%29%20asJQuery.%0A%09element%20removeClass.%0A%09element%20addClass%3A%20%28self%20numberClass%29.'),
|
||||
messageSends: ["asJQuery", unescape("%2C"), "elementId", "removeClass", "addClass:", "numberClass"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_withModel_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('withModel%3A'),
|
||||
category: 'initializers',
|
||||
fn: function (anIssue){
|
||||
var self=this;
|
||||
(self['@model']=anIssue);
|
||||
(self['@number']=smalltalk.send(anIssue, "_number", []));
|
||||
return self;},
|
||||
args: ["anIssue"],
|
||||
source: unescape('withModel%3A%20anIssue%0A%09model%20%3A%3D%20anIssue.%0A%09number%20%3A%3D%20anIssue%20number.'),
|
||||
messageSends: ["number"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_model'),
|
||||
smalltalk.method({
|
||||
selector: unescape('model'),
|
||||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return self['@model'];
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('model%0A%09%5E%20model.'),
|
||||
messageSends: [],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_addComment_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('addComment%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (clickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.CommentDialog || CommentDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;},
|
||||
args: ["clickEvent"],
|
||||
source: unescape('addComment%3A%20clickEvent%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20CommentDialog%20new%20withIssue%3A%20model.%0A%09dialog%20appendToJQuery%3A%20%27body%27%20asJQuery.'),
|
||||
messageSends: ["withIssue:", "new", "appendToJQuery:", "asJQuery"],
|
||||
referencedClasses: ["CommentDialog"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_viewIssue_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('viewIssue%3A'),
|
||||
category: 'actions',
|
||||
fn: function (onClickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.IssueDetailDialog || IssueDetailDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;},
|
||||
args: ["onClickEvent"],
|
||||
source: unescape('viewIssue%3A%20onClickEvent%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20IssueDetailDialog%20new%20withIssue%3A%20model.%0A%09dialog%20appendToJQuery%3A%20%27body%27%20asJQuery.%0A%09'),
|
||||
messageSends: ["withIssue:", "new", "appendToJQuery:", "asJQuery"],
|
||||
referencedClasses: ["IssueDetailDialog"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_asJQuery'),
|
||||
|
@ -258,56 +77,36 @@ selector: unescape('asJQuery'),
|
|||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "_asJQuery", []);
|
||||
return smalltalk.send(smalltalk.send(self, "_elementId", []), "_asJQuery", []);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('asJQuery%0A%09%5E%20%28%27%23%27%2C%20self%20elementId%29%20asJQuery.'),
|
||||
messageSends: ["asJQuery", unescape("%2C"), "elementId"],
|
||||
source: unescape('asJQuery%0A%09%5E%20self%20elementId%20asJQuery.'),
|
||||
messageSends: ["asJQuery", "elementId"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog);
|
||||
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderHeader_'),
|
||||
unescape('_show'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderHeader%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
selector: unescape('show'),
|
||||
category: 'not yet classified',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(function($rec){smalltalk.send($rec, "_class_", [smalltalk.send(self, "_numberClass", [])]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_url", [])]);smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_with_", [smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_number", []), "_asString", [])])]);return smalltalk.send($rec, "_onClick_", [(function(event){smalltalk.send(self, "_viewIssue_", [event]);return smalltalk.send(event, "_preventDefault", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [" in "]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectOwner", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_projectOwner", [])]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [unescape("%20/%20")]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectName", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_project", [])]);})(smalltalk.send(html, "_a", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3Aright%3B")]);smalltalk.send($rec, "_class_", ["comments"]);return smalltalk.send($rec, "_with_", [(function(){(($receiver = smalltalk.send(self['@model'], "_pullRequest", [])) != nil && $receiver != undefined) ? (function(){return (function($rec){smalltalk.send($rec, "_class_", ["pull_req"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_pullRequest", [])]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(html, "_img", []), "_src_", [unescape("/images/pull_request.png")]);})]);})(smalltalk.send(html, "_a", []));return smalltalk.send(html, "_with_", ["Code Attached"]);})]);})(smalltalk.send(html, "_span", []));})() : nil;smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_comments", []), "_asString", []), "__comma", [" comments"])]);return (function($rec){smalltalk.send($rec, "_class_", ["add_comment"]);smalltalk.send($rec, "_title_", ["Add Comment"]);smalltalk.send($rec, "_with_", [unescape("+")]);return smalltalk.send($rec, "_onClick_", [(function(event){return smalltalk.send(self, "_addComment_", [event]);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;},
|
||||
args: ["html"],
|
||||
source: unescape('renderHeader%3A%20html%0A%09html%20div%0A%09%09class%3A%20self%20numberClass%3B%0A%09%09with%3A%20%5B%20%0A%09%09%09html%20a%20href%3A%20%28model%20url%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28%27%23%27%2C%20%28model%20number%29%20asString%29%3B%20onClick%3A%20%5B%20%3Aevent%20%7C%20self%20viewIssue%3A%20event.%20event%20preventDefault%20%5D.%0A%09%09%09html%20with%3A%20%27%20in%20%27.%0A%09%09%09html%20a%20href%3A%20%28%27https%3A//github.com/%27%2C%20%28model%20projectOwner%29%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28model%20projectOwner%29.%0A%09%09%09html%20with%3A%20%27%20/%20%27.%0A%09%09%09html%20%20a%20href%3A%20%28%27https%3A//github.com/%27%2C%20%28model%20projectName%29%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28model%20project%29.%0A%09%09%09html%20div%0A%09%09%09%09style%3A%20%27float%3Aright%3B%27%3B%0A%09%09%09%09class%3A%20%27comments%27%3B%0A%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09model%20pullRequest%20ifNotNil%3A%20%5B%0A%09%09%09%09%09%09html%20span%0A%09%09%09%09%09%09%09class%3A%20%27pull_req%27%3B%0A%09%09%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09%09%09html%20a%20target%3A%20%27_blank%27%3B%20href%3A%20%28model%20pullRequest%29%3B%20with%3A%20%5B%20html%20img%20src%3A%20%27/images/pull_request.png%27%20%5D.%0A%09%09%09%09%09%09%09%09html%20with%3A%20%27Code%20Attached%27.%0A%09%09%09%09%09%09%09%5D.%0A%09%09%09%09%09%09%5D.%0A%09%09%09%09%09html%20span%20with%3A%20%28model%20comments%20asString%2C%20%27%20comments%27%29.%0A%09%09%09%09%09html%20button%0A%09%09%09%09%09%09class%3A%20%27add_comment%27%3B%0A%09%09%09%09%09%09title%3A%20%27Add%20Comment%27%3B%0A%09%09%09%09%09%09with%3A%20%27+%27%3B%0A%09%09%09%09%09%09onClick%3A%20%5B%20%3Aevent%20%7C%20self%20addComment%3A%20event%20%5D.%0A%09%09%09%09%5D.%0A%09%09%5D.'),
|
||||
messageSends: ["class:", "numberClass", "with:", "href:", "url", "target:", unescape("%2C"), "asString", "number", "onClick:", "viewIssue:", "preventDefault", "a", "projectOwner", "projectName", "project", "style:", "ifNotNil:", "pullRequest", "src:", "img", "span", "comments", "title:", "addComment:", "button", "div"],
|
||||
args: [],
|
||||
source: unescape('show%0A%09%22%20Creates%20and%20adds%20the%20DOM%20elements%20to%20the%20body%20tag%20%22%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20super%20new.%0A%09dialog%20appendToJQuery%3A%20%28%27body%27%20asJQuery%29.'),
|
||||
messageSends: ["new", "appendToJQuery:", "asJQuery"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderLabels_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderLabels%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
try{var rendered=nil;
|
||||
(rendered=false);
|
||||
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_size", []), "__eq", [(0)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})]));
|
||||
smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_do_", [(function(label){var labelName=nil;
|
||||
(labelName=smalltalk.send(label, "_at_", ["name"]));return ((($receiver = smalltalk.send(labelName, "__eq", [unescape("in-progress")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})]));})]);
|
||||
((($receiver = rendered).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})]));
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_renderLabels_'){return e.fn()} throw(e)}},
|
||||
args: ["html"],
|
||||
source: unescape('renderLabels%3A%20html%0A%09%22%20Render%20any%20labels%20other%20than%20our%20own%20%27in-progress%27%20label%22%0A%09%7C%20rendered%20%7C%0A%09rendered%20%3A%3D%20false.%0A%09%28model%20labels%20size%29%20%3D%200%20ifTrue%3A%20%5B%20%5E%20false%20%5D.%0A%0A%09model%20labels%20do%3A%20%5B%20%3Alabel%20%7C%0A%09%09%7C%20labelName%20%7C%0A%09%09labelName%20%3A%3D%20label%20at%3A%20%27name%27.%0A%09%09labelName%20%3D%20%27in-progress%27%20ifFalse%3A%20%5B%0A%09%09%09rendered%20%3A%3D%20true.%0A%09%09%09html%20li%20with%3A%20%5B%0A%09%09%09%09html%20span%0A%09%09%09%09%09style%3A%20%27background-color%3A%20%23%27%2C%20%28label%20at%3A%20%27color%27%29%3B%0A%09%09%09%09%09with%3A%20labelName%0A%09%09%09%5D.%0A%09%09%5D.%0A%09%5D.%0A%09rendered%20ifTrue%3A%20%5B%20html%20br%20at%3A%20%27clear%27%20put%3A%20%27left%27%20%5D.%0A'),
|
||||
messageSends: ["ifTrue:", unescape("%3D"), "size", "labels", "do:", "at:", "ifFalse:", "with:", "li", "style:", unescape("%2C"), "span", "at:put:", "br"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
smalltalk.HBDialog.klass);
|
||||
|
||||
|
||||
|
||||
smalltalk.addClass('HubboardApp', smalltalk.Object, ['token', 'issueMap', 'issueApi', 'userApi', 'knownRepos', 'userData', 'refreshIntervalId', 'currentProject', 'refreshInterval', 'sortedRepos', 'assignedProjects'], 'Hubboard');
|
||||
smalltalk.addClass('HubboardApp', smalltalk.Object, ['token', 'issueMap', 'issueApi', 'userApi', 'knownRepos', 'userData', 'refreshIntervalId', 'currentProject', 'refreshInterval', 'sortedRepos', 'assignedProjects', 'alphasortedRepos'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_initialize'),
|
||||
smalltalk.method({
|
||||
|
@ -695,6 +494,23 @@ referencedClasses: []
|
|||
}),
|
||||
smalltalk.HubboardApp);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_alphasortedRepos'),
|
||||
smalltalk.method({
|
||||
selector: unescape('alphasortedRepos'),
|
||||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return (($receiver = self['@alphasortedRepos']) == nil || $receiver == undefined) ? (function(){var names=nil;
|
||||
(names=smalltalk.send(self['@knownRepos'], "_keys", []));return (self['@alphasortedRepos']=smalltalk.send(names, "_sort_", [(function(left, right){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [left]), "_at_", ["name"]), "_asLowercase", [])).klass === smalltalk.Number) ? $receiver <smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [right]), "_at_", ["name"]), "_asLowercase", []) : smalltalk.send($receiver, "__lt", [smalltalk.send(smalltalk.send(smalltalk.send(self['@knownRepos'], "_at_", [right]), "_at_", ["name"]), "_asLowercase", [])]));})]));})() : $receiver;
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('alphasortedRepos%0A%09%22%20Return%20an%20Array%20of%20repos%20%28owner/reponame%29%20sorted%20by%20the%20most%20recently%20updated%20%22%0A%09%5E%20alphasortedRepos%20ifNil%3A%20%5B%0A%09%09%7C%20names%20%7C%0A%09%09names%20%3A%3D%20knownRepos%20keys.%0A%09%09alphasortedRepos%20%3A%3D%20names%20sort%3A%20%5B%20%3Aleft%20%3Aright%20%7C%0A%09%09%09%28%28knownRepos%20at%3A%20left%29%20at%3A%20%27name%27%29%20asLowercase%20%3C%20%28%28knownRepos%20at%3A%20right%29%20at%3A%20%27name%27%29%20asLowercase%0A%09%09%5D.%0A%09%5D.'),
|
||||
messageSends: ["ifNil:", "keys", "sort:", unescape("%3C"), "asLowercase", "at:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HubboardApp);
|
||||
|
||||
|
||||
smalltalk.HubboardApp.klass.iVarNames = ['current'];
|
||||
smalltalk.addMethod(
|
||||
|
@ -714,60 +530,73 @@ referencedClasses: []
|
|||
smalltalk.HubboardApp.klass);
|
||||
|
||||
|
||||
smalltalk.addClass('HBDialog', smalltalk.Widget, ['modal', 'minWidth', 'draggable', 'elementId', 'position', 'maxHeight'], 'Hubboard');
|
||||
smalltalk.addClass('IssueTile', smalltalk.Widget, ['raw', 'title', 'body', 'issueId', 'number', 'project', 'projectOwner', 'issueStatus', 'comments', 'fullProjectName', 'elementId', 'model'], 'Hubboard');
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog'),
|
||||
unescape('_renderOn_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog'),
|
||||
category: 'dialog-helpers',
|
||||
fn: function (){
|
||||
selector: unescape('renderOn%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
return smalltalk.send(self, "_becomeDialog_", [(function(){return nil;})]);
|
||||
(function($rec){smalltalk.send($rec, "_class_", ["issuetile"]);smalltalk.send($rec, "_id_", [smalltalk.send(self, "_elementId", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-project"), smalltalk.send(self['@model'], "_projectName", [])]);smalltalk.send($rec, "_at_put_", [unescape("data-issueid"), smalltalk.send(self['@model'], "_issueId", [])]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(self, "_renderHeader_", [html]);(function($rec){smalltalk.send($rec, "_class_", ["title"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_title", [])]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_class_", ["labels"]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(self, "_renderLabels_", [html]);})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_postRender", []);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('becomeDialog%0A%09%5E%20self%20becomeDialog%3A%20%5B%5D.'),
|
||||
messageSends: ["becomeDialog:"],
|
||||
args: ["html"],
|
||||
source: unescape('renderOn%3A%20html%0A%09html%20div%0A%09%09class%3A%20%27issuetile%27%3B%0A%09%09id%3A%20self%20elementId%3B%0A%09%09at%3A%20%27data-project%27%20put%3A%20%28model%20projectName%29%3B%0A%09%09at%3A%20%27data-issueid%27%20put%3A%20%28model%20issueId%29%3B%0A%09%09with%3A%20%5B%0A%09%09%09self%20renderHeader%3A%20html.%0A%09%09%09html%20div%20class%3A%20%27title%27%3B%20with%3A%20%28model%20title%29.%0A%09%09%09html%20div%20class%3A%20%27labels%27%3B%20with%3A%20%5B%20self%20renderLabels%3A%20html%20%5D%0A%09%09%5D.%0A%09self%20postRender.'),
|
||||
messageSends: ["class:", "id:", "elementId", "at:put:", "projectName", "issueId", "with:", "renderHeader:", "title", "div", "renderLabels:", "postRender"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_initialize'),
|
||||
unescape('_parseUrl_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('initialize'),
|
||||
category: 'initializers',
|
||||
fn: function (){
|
||||
selector: unescape('parseUrl%3A'),
|
||||
category: 'not yet classified',
|
||||
fn: function (aUrl){
|
||||
var self=this;
|
||||
smalltalk.send(self, "_initialize", [], smalltalk.Widget);
|
||||
(self['@modal']=true);
|
||||
(self['@minWidth']=(500));
|
||||
(self['@maxHeight']=(500));
|
||||
(self['@draggable']=false);
|
||||
(self['@position']="center");
|
||||
var parts=nil;
|
||||
(parts=aUrl.split('/'));
|
||||
return smalltalk.HashedCollection._fromPairs_([smalltalk.send("owner", "__minus_gt", [smalltalk.send(parts, "_at_", [(4)])]),smalltalk.send("project", "__minus_gt", [smalltalk.send(parts, "_at_", [(5)])])]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('initialize%0A%09super%20initialize.%0A%09modal%20%3A%3D%20true.%0A%09minWidth%20%3A%3D%20500.%0A%09maxHeight%20%3A%3D%20500.%0A%09draggable%20%3A%3D%20false.%0A%09position%20%3A%3D%20%27center%27.'),
|
||||
messageSends: ["initialize"],
|
||||
args: ["aUrl"],
|
||||
source: unescape('parseUrl%3A%20aUrl%0A%09%22Return%20a%20Hash%20with%20the%20%27owner%27%20and%20%27project%27%20based%20on%20the%20given%20Issue%20URL%22%0A%09%7C%20parts%20%7C%0A%09parts%20%3A%3D%20%3CaUrl.split%28%27/%27%29%3E.%0A%09%0A%09%5E%20%23%7B%27owner%27%20-%3E%20%28parts%20at%3A%204%29.%0A%09%09%27project%27%20-%3E%20%28parts%20at%3A%205%29%7D.'),
|
||||
messageSends: [unescape("-%3E"), "at:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_becomeDialog_'),
|
||||
unescape('_setOpen'),
|
||||
smalltalk.method({
|
||||
selector: unescape('becomeDialog%3A'),
|
||||
category: 'dialog-helpers',
|
||||
fn: function (aBlockCallback){
|
||||
selector: unescape('setOpen'),
|
||||
category: 'actions',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dialog_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("modal", "__minus_gt", [self['@modal']]),smalltalk.send("minWidth", "__minus_gt", [self['@minWidth']]),smalltalk.send("maxHeight", "__minus_gt", [self['@maxHeight']]),smalltalk.send("draggable", "__minus_gt", [self['@draggable']]),smalltalk.send("position", "__minus_gt", [self['@position']]),smalltalk.send("close", "__minus_gt", [(function(event, ui){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_remove", []);})])])]);
|
||||
smalltalk.send(aBlockCallback, "_value", []);
|
||||
(self['@issueStatus']=smalltalk.symbolFor("open"));
|
||||
return self;},
|
||||
args: ["aBlockCallback"],
|
||||
source: unescape('becomeDialog%3A%20aBlockCallback%0A%09self%20asJQuery%20dialog%3A%20%23%7B%0A%09%09%09%27modal%27%20-%3E%20modal.%0A%09%09%09%27minWidth%27%20-%3E%20minWidth.%0A%09%09%09%27maxHeight%27%20-%3E%20maxHeight.%0A%09%09%09%27draggable%27%20-%3E%20draggable.%0A%09%09%09%27position%27%20-%3E%20position.%0A%09%09%09%27close%27%20-%3E%20%5B%20%3Aevent%20%3Aui%20%7C%0A%09%09%09%09self%20asJQuery%20remove.%0A%09%09%09%5D%7D.%0A%09aBlockCallback%20value.'),
|
||||
messageSends: ["dialog:", "asJQuery", unescape("-%3E"), "remove", "value"],
|
||||
args: [],
|
||||
source: unescape('setOpen%0A%09%22Set%20this%20issue%20as%20an%20open%20issue%22%0A%09issueStatus%20%3A%3D%20%23open.'),
|
||||
messageSends: [],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setInProgress'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setInProgress'),
|
||||
category: 'actions',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("inprogress"));
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('setInProgress%0A%09%22Set%20this%20issue%20as%20an%20inprogress%20issue%22%0A%09issueStatus%20%3A%3D%20%23inprogress.'),
|
||||
messageSends: [],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_elementId'),
|
||||
|
@ -776,14 +605,182 @@ selector: unescape('elementId'),
|
|||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(unescape("%23"), "__comma", [self['@elementId']]);
|
||||
return (($receiver = self['@elementId']) == nil || $receiver == undefined) ? (function(){return (self['@elementId']=smalltalk.send("issuetile_", "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_issueId", []), "_asString", [])]));})() : $receiver;
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('elementId%0A%09%5E%20%28%27%23%27%2C%20elementId%29.'),
|
||||
messageSends: [unescape("%2C")],
|
||||
source: unescape('elementId%0A%09%5E%20elementId%20ifNil%3A%20%5B%20elementId%20%3A%3D%20%27issuetile_%27%2C%20%28model%20issueId%20asString%29%20%5D.'),
|
||||
messageSends: ["ifNil:", unescape("%2C"), "asString", "issueId"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_moveTo_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('moveTo%3A'),
|
||||
category: 'not yet classified',
|
||||
fn: function (aColumnId){
|
||||
var self=this;
|
||||
try{var postData=nil;
|
||||
var successBlock=nil;
|
||||
var url=nil;
|
||||
(postData=smalltalk.HashedCollection._fromPairs_([smalltalk.send("project", "__minus_gt", [smalltalk.send(self['@model'], "_projectName", [])])]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["inprogressissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/label")]));return (successBlock=(function(){return smalltalk.send(self, "_setInProgress", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["openissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/revert")]));return (successBlock=(function(){return smalltalk.send(self, "_setOpen", []);}));})]));
|
||||
((($receiver = smalltalk.send(aColumnId, "__eq", ["closedissues"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){(url=smalltalk.send(smalltalk.send(unescape("/issues/"), "__comma", [self['@number']]), "__comma", [unescape("/close")]));return (successBlock=(function(){return smalltalk.send(self, "_setClosed", []);}));})]));
|
||||
(($receiver = url) != nil && $receiver != undefined) ? (function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_showSpinner", []);smalltalk.send((typeof jQuery == 'undefined' ? nil : jQuery), "_ajax_options_", [url, smalltalk.HashedCollection._fromPairs_([smalltalk.send("type", "__minus_gt", ["POST"]),smalltalk.send("dataType", "__minus_gt", ["json"]),smalltalk.send("data", "__minus_gt", [smalltalk.send(postData, "_asJSONString", [])]),smalltalk.send("success", "__minus_gt", [(function(){(($receiver = successBlock) != nil && $receiver != undefined) ? (function(){return smalltalk.send(successBlock, "_value", []);})() : nil;smalltalk.send(self, "_updateHeaderClass", []);return smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);})]),smalltalk.send("error", "__minus_gt", [(function(){smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_hideSpinner", []);return smalltalk.send((typeof console == 'undefined' ? nil : console), "_log_", ["fail"]);})])])]);return (function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return true}})})();})() : nil;
|
||||
(function(){throw({name: 'stReturn', selector: '_moveTo_', fn: function(){return false}})})();
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_moveTo_'){return e.fn()} throw(e)}},
|
||||
args: ["aColumnId"],
|
||||
source: unescape('moveTo%3A%20aColumnId%0A%09%22Handle%20the%20invocation%20of%20the%20right%20callbacks%20when%20we%20move%20from%20one%20column%20to%20another%0A%09%20The%20lines%20blur%20a%20bit%20here%20on%20%27view%27%20versus%20%27controller%27%22%0A%09%7C%20postData%20successBlock%20url%20%7C%0A%09postData%20%3A%3D%20%23%7B%27project%27%20-%3E%20model%20projectName%20%7D.%0A%0A%0A%09aColumnId%20%3D%20%27inprogressissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/label%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setInProgress.%20%5D.%0A%09%5D.%0A%09aColumnId%20%3D%20%27openissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/revert%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setOpen%20%5D%0A%09%5D.%0A%09aColumnId%20%3D%20%27closedissues%27%20ifTrue%3A%20%5B%0A%09%09url%20%3A%3D%20%27/issues/%27%2C%20number%2C%20%27/close%27.%0A%09%09successBlock%20%3A%3D%20%5B%20self%20setClosed%20%5D.%0A%09%5D.%0A%09%0A%09url%20ifNotNil%3A%20%5B%0A%09%09HubboardApp%20current%20showSpinner.%0A%09%09jQuery%20ajax%3A%20url%0A%09%09%09%09options%3A%20%23%7B%0A%09%09%09%09%09%27type%27%20-%3E%20%27POST%27.%0A%09%09%09%09%09%27dataType%27%20-%3E%20%27json%27.%0A%09%09%09%09%09%27data%27%20-%3E%20postData%20asJSONString.%0A%09%09%09%09%09%27success%27%20-%3E%20%5B%0A%09%09%09%09%09%09successBlock%20ifNotNil%3A%20%5B%20successBlock%20value%20%5D.%0A%09%09%09%09%09%09self%20updateHeaderClass.%0A%09%09%09%09%09%09HubboardApp%20current%20hideSpinner.%0A%09%09%09%09%09%5D.%0A%09%09%09%09%09%27error%27%20-%3E%20%5B%20HubboardApp%20current%20hideSpinner.%20console%20log%3A%20%27fail%27%5D%0A%09%09%09%09%09%7D.%0A%09%09%5E%20true.%0A%09%5D.%0A%09%5E%20false.'),
|
||||
messageSends: [unescape("-%3E"), "projectName", "ifTrue:", unescape("%3D"), unescape("%2C"), "setInProgress", "setOpen", "setClosed", "ifNotNil:", "showSpinner", "current", "ajax:options:", "asJSONString", "value", "updateHeaderClass", "hideSpinner", "log:"],
|
||||
referencedClasses: ["HubboardApp"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_setClosed'),
|
||||
smalltalk.method({
|
||||
selector: unescape('setClosed'),
|
||||
category: 'actions',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
(self['@issueStatus']=smalltalk.symbolFor("closed"));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", ["disable"]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('setClosed%0A%09%22Set%20this%20issue%20as%20a%20closed%20issue%2C%20should%20not%20be%20draggable%20as%20a%20result%22%0A%09issueStatus%20%3A%3D%20%23closed.%0A%09self%20asJQuery%20draggable%3A%20%27disable%27.'),
|
||||
messageSends: ["draggable:", "asJQuery"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_numberClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('numberClass'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var numberClass=nil;
|
||||
(numberClass="number");
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("open")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" open"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("inprogress")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" inprogress"]));})]));
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (numberClass=smalltalk.send(numberClass, "__comma", [" closed"]));})]));
|
||||
return numberClass;
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('numberClass%0A%09%7C%20numberClass%20%7C%0A%09numberClass%20%3A%3D%20%27number%27.%0A%09issueStatus%20%3D%20%23open%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20open%27%20%5D.%20%0A%09issueStatus%20%3D%20%23inprogress%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20inprogress%27%20%5D.%20%0A%09issueStatus%20%3D%20%23closed%20ifTrue%3A%20%5B%20numberClass%20%3A%3D%20numberClass%2C%20%27%20closed%27%5D.%0A%09%5E%20numberClass.'),
|
||||
messageSends: ["ifTrue:", unescape("%3D"), unescape("%2C")],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_postRender'),
|
||||
smalltalk.method({
|
||||
selector: unescape('postRender'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
((($receiver = smalltalk.send(self['@issueStatus'], "__eq", [smalltalk.symbolFor("closed")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_draggable_", [smalltalk.HashedCollection._fromPairs_([smalltalk.send("zIndex", "__minus_gt", ["10000"]),smalltalk.send("snap", "__minus_gt", [true])])]);})]));
|
||||
smalltalk.send(smalltalk.send(self, "_asJQuery", []), "_dblclick_", [(function(event){return smalltalk.send(self, "_viewIssue_", [event]);})]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('postRender%0A%09%22Run%20actions%20after%20we%27ve%20rendered%20the%20DOM%20elements%20%22%0A%0A%09%22Make%20the%20tile%20draggable%22%0A%09issueStatus%20%3D%20%23closed%20ifFalse%3A%20%5B%20self%20asJQuery%20draggable%3A%20%23%7B%27zIndex%27%20-%3E%20%2710000%27.%20%27snap%27%20-%3E%20true%20%7D%5D.%0A%0A%09%22Make%20ourselves%20double-clickable%22%0A%09self%20asJQuery%20dblclick%3A%20%5B%20%3Aevent%20%7C%20self%20viewIssue%3A%20event%20%5D.'),
|
||||
messageSends: ["ifFalse:", unescape("%3D"), "draggable:", "asJQuery", unescape("-%3E"), "dblclick:", "viewIssue:"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_updateHeaderClass'),
|
||||
smalltalk.method({
|
||||
selector: unescape('updateHeaderClass'),
|
||||
category: 'rendering',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
var element=nil;
|
||||
(element=smalltalk.send(smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "__comma", [unescape("%20%3E%20div.number")]), "_asJQuery", []));
|
||||
smalltalk.send(element, "_removeClass", []);
|
||||
smalltalk.send(element, "_addClass_", [smalltalk.send(self, "_numberClass", [])]);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('updateHeaderClass%0A%09%7Celement%20%7C%0A%09element%20%3A%3D%20%28%27%23%27%2C%20self%20elementId%2C%20%27%20%3E%20div.number%27%29%20asJQuery.%0A%09element%20removeClass.%0A%09element%20addClass%3A%20%28self%20numberClass%29.'),
|
||||
messageSends: ["asJQuery", unescape("%2C"), "elementId", "removeClass", "addClass:", "numberClass"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_withModel_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('withModel%3A'),
|
||||
category: 'initializers',
|
||||
fn: function (anIssue){
|
||||
var self=this;
|
||||
(self['@model']=anIssue);
|
||||
(self['@number']=smalltalk.send(anIssue, "_number", []));
|
||||
return self;},
|
||||
args: ["anIssue"],
|
||||
source: unescape('withModel%3A%20anIssue%0A%09model%20%3A%3D%20anIssue.%0A%09number%20%3A%3D%20anIssue%20number.'),
|
||||
messageSends: ["number"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_model'),
|
||||
smalltalk.method({
|
||||
selector: unescape('model'),
|
||||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return self['@model'];
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('model%0A%09%5E%20model.'),
|
||||
messageSends: [],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_addComment_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('addComment%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (clickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.CommentDialog || CommentDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;},
|
||||
args: ["clickEvent"],
|
||||
source: unescape('addComment%3A%20clickEvent%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20CommentDialog%20new%20withIssue%3A%20model.%0A%09dialog%20appendToJQuery%3A%20%27body%27%20asJQuery.'),
|
||||
messageSends: ["withIssue:", "new", "appendToJQuery:", "asJQuery"],
|
||||
referencedClasses: ["CommentDialog"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_viewIssue_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('viewIssue%3A'),
|
||||
category: 'actions',
|
||||
fn: function (onClickEvent){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(smalltalk.send((smalltalk.IssueDetailDialog || IssueDetailDialog), "_new", []), "_withIssue_", [self['@model']]));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
return self;},
|
||||
args: ["onClickEvent"],
|
||||
source: unescape('viewIssue%3A%20onClickEvent%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20IssueDetailDialog%20new%20withIssue%3A%20model.%0A%09dialog%20appendToJQuery%3A%20%27body%27%20asJQuery.%0A%09'),
|
||||
messageSends: ["withIssue:", "new", "appendToJQuery:", "asJQuery"],
|
||||
referencedClasses: ["IssueDetailDialog"]
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_asJQuery'),
|
||||
|
@ -792,33 +789,53 @@ selector: unescape('asJQuery'),
|
|||
category: 'accessors',
|
||||
fn: function (){
|
||||
var self=this;
|
||||
return smalltalk.send(smalltalk.send(self, "_elementId", []), "_asJQuery", []);
|
||||
return smalltalk.send(smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(self, "_elementId", [])]), "_asJQuery", []);
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('asJQuery%0A%09%5E%20self%20elementId%20asJQuery.'),
|
||||
messageSends: ["asJQuery", "elementId"],
|
||||
source: unescape('asJQuery%0A%09%5E%20%28%27%23%27%2C%20self%20elementId%29%20asJQuery.'),
|
||||
messageSends: ["asJQuery", unescape("%2C"), "elementId"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog);
|
||||
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_show'),
|
||||
unescape('_renderHeader_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('show'),
|
||||
category: 'not yet classified',
|
||||
fn: function (){
|
||||
selector: unescape('renderHeader%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
var dialog=nil;
|
||||
(dialog=smalltalk.send(self, "_new", [], smalltalk.Widget.klass));
|
||||
smalltalk.send(dialog, "_appendToJQuery_", [smalltalk.send("body", "_asJQuery", [])]);
|
||||
(function($rec){smalltalk.send($rec, "_class_", [smalltalk.send(self, "_numberClass", [])]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_url", [])]);smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_with_", [smalltalk.send(unescape("%23"), "__comma", [smalltalk.send(smalltalk.send(self['@model'], "_number", []), "_asString", [])])]);return smalltalk.send($rec, "_onClick_", [(function(event){smalltalk.send(self, "_viewIssue_", [event]);return smalltalk.send(event, "_preventDefault", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [" in "]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectOwner", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_projectOwner", [])]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_with_", [unescape("%20/%20")]);(function($rec){smalltalk.send($rec, "_href_", [smalltalk.send(unescape("https%3A//github.com/"), "__comma", [smalltalk.send(self['@model'], "_projectName", [])])]);smalltalk.send($rec, "_target_", ["_blank"]);return smalltalk.send($rec, "_with_", [smalltalk.send(self['@model'], "_project", [])]);})(smalltalk.send(html, "_a", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3Aright%3B")]);smalltalk.send($rec, "_class_", ["comments"]);return smalltalk.send($rec, "_with_", [(function(){(($receiver = smalltalk.send(self['@model'], "_pullRequest", [])) != nil && $receiver != undefined) ? (function(){return (function($rec){smalltalk.send($rec, "_class_", ["pull_req"]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_target_", ["_blank"]);smalltalk.send($rec, "_href_", [smalltalk.send(self['@model'], "_pullRequest", [])]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(html, "_img", []), "_src_", [unescape("/images/pull_request.png")]);})]);})(smalltalk.send(html, "_a", []));return smalltalk.send(html, "_with_", ["Code Attached"]);})]);})(smalltalk.send(html, "_span", []));})() : nil;smalltalk.send(smalltalk.send(html, "_span", []), "_with_", [smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_comments", []), "_asString", []), "__comma", [" comments"])]);return (function($rec){smalltalk.send($rec, "_class_", ["add_comment"]);smalltalk.send($rec, "_title_", ["Add Comment"]);smalltalk.send($rec, "_with_", [unescape("+")]);return smalltalk.send($rec, "_onClick_", [(function(event){return smalltalk.send(self, "_addComment_", [event]);})]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_div", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
return self;},
|
||||
args: [],
|
||||
source: unescape('show%0A%09%22%20Creates%20and%20adds%20the%20DOM%20elements%20to%20the%20body%20tag%20%22%0A%09%7C%20dialog%20%7C%0A%09dialog%20%3A%3D%20super%20new.%0A%09dialog%20appendToJQuery%3A%20%28%27body%27%20asJQuery%29.'),
|
||||
messageSends: ["new", "appendToJQuery:", "asJQuery"],
|
||||
args: ["html"],
|
||||
source: unescape('renderHeader%3A%20html%0A%09html%20div%0A%09%09class%3A%20self%20numberClass%3B%0A%09%09with%3A%20%5B%20%0A%09%09%09html%20a%20href%3A%20%28model%20url%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28%27%23%27%2C%20%28model%20number%29%20asString%29%3B%20onClick%3A%20%5B%20%3Aevent%20%7C%20self%20viewIssue%3A%20event.%20event%20preventDefault%20%5D.%0A%09%09%09html%20with%3A%20%27%20in%20%27.%0A%09%09%09html%20a%20href%3A%20%28%27https%3A//github.com/%27%2C%20%28model%20projectOwner%29%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28model%20projectOwner%29.%0A%09%09%09html%20with%3A%20%27%20/%20%27.%0A%09%09%09html%20%20a%20href%3A%20%28%27https%3A//github.com/%27%2C%20%28model%20projectName%29%29%3B%20target%3A%20%27_blank%27%3B%20with%3A%20%28model%20project%29.%0A%09%09%09html%20div%0A%09%09%09%09style%3A%20%27float%3Aright%3B%27%3B%0A%09%09%09%09class%3A%20%27comments%27%3B%0A%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09model%20pullRequest%20ifNotNil%3A%20%5B%0A%09%09%09%09%09%09html%20span%0A%09%09%09%09%09%09%09class%3A%20%27pull_req%27%3B%0A%09%09%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09%09%09html%20a%20target%3A%20%27_blank%27%3B%20href%3A%20%28model%20pullRequest%29%3B%20with%3A%20%5B%20html%20img%20src%3A%20%27/images/pull_request.png%27%20%5D.%0A%09%09%09%09%09%09%09%09html%20with%3A%20%27Code%20Attached%27.%0A%09%09%09%09%09%09%09%5D.%0A%09%09%09%09%09%09%5D.%0A%09%09%09%09%09html%20span%20with%3A%20%28model%20comments%20asString%2C%20%27%20comments%27%29.%0A%09%09%09%09%09html%20button%0A%09%09%09%09%09%09class%3A%20%27add_comment%27%3B%0A%09%09%09%09%09%09title%3A%20%27Add%20Comment%27%3B%0A%09%09%09%09%09%09with%3A%20%27+%27%3B%0A%09%09%09%09%09%09onClick%3A%20%5B%20%3Aevent%20%7C%20self%20addComment%3A%20event%20%5D.%0A%09%09%09%09%5D.%0A%09%09%5D.'),
|
||||
messageSends: ["class:", "numberClass", "with:", "href:", "url", "target:", unescape("%2C"), "asString", "number", "onClick:", "viewIssue:", "preventDefault", "a", "projectOwner", "projectName", "project", "style:", "ifNotNil:", "pullRequest", "src:", "img", "span", "comments", "title:", "addComment:", "button", "div"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.HBDialog.klass);
|
||||
smalltalk.IssueTile);
|
||||
|
||||
smalltalk.addMethod(
|
||||
unescape('_renderLabels_'),
|
||||
smalltalk.method({
|
||||
selector: unescape('renderLabels%3A'),
|
||||
category: 'rendering',
|
||||
fn: function (html){
|
||||
var self=this;
|
||||
try{var rendered=nil;
|
||||
(rendered=false);
|
||||
((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_size", []), "__eq", [(0)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw({name: 'stReturn', selector: '_renderLabels_', fn: function(){return false}})})();})]));
|
||||
smalltalk.send(smalltalk.send(self['@model'], "_labels", []), "_do_", [(function(label){var labelName=nil;
|
||||
(labelName=smalltalk.send(label, "_at_", ["name"]));return ((($receiver = smalltalk.send(labelName, "__eq", [unescape("in-progress")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(rendered=true);return smalltalk.send(smalltalk.send(html, "_li", []), "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_style_", [smalltalk.send(unescape("background-color%3A%20%23"), "__comma", [smalltalk.send(label, "_at_", ["color"])])]);return smalltalk.send($rec, "_with_", [labelName]);})(smalltalk.send(html, "_span", []));})]);})]));})]);
|
||||
((($receiver = rendered).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(smalltalk.send(html, "_br", []), "_at_put_", ["clear", "left"]);})]));
|
||||
return self;
|
||||
} catch(e) {if(e.name === 'stReturn' && e.selector === '_renderLabels_'){return e.fn()} throw(e)}},
|
||||
args: ["html"],
|
||||
source: unescape('renderLabels%3A%20html%0A%09%22%20Render%20any%20labels%20other%20than%20our%20own%20%27in-progress%27%20label%22%0A%09%7C%20rendered%20%7C%0A%09rendered%20%3A%3D%20false.%0A%09%28model%20labels%20size%29%20%3D%200%20ifTrue%3A%20%5B%20%5E%20false%20%5D.%0A%0A%09model%20labels%20do%3A%20%5B%20%3Alabel%20%7C%0A%09%09%7C%20labelName%20%7C%0A%09%09labelName%20%3A%3D%20label%20at%3A%20%27name%27.%0A%09%09labelName%20%3D%20%27in-progress%27%20ifFalse%3A%20%5B%0A%09%09%09rendered%20%3A%3D%20true.%0A%09%09%09html%20li%20with%3A%20%5B%0A%09%09%09%09html%20span%0A%09%09%09%09%09style%3A%20%27background-color%3A%20%23%27%2C%20%28label%20at%3A%20%27color%27%29%3B%0A%09%09%09%09%09with%3A%20labelName%0A%09%09%09%5D.%0A%09%09%5D.%0A%09%5D.%0A%09rendered%20ifTrue%3A%20%5B%20html%20br%20at%3A%20%27clear%27%20put%3A%20%27left%27%20%5D.%0A'),
|
||||
messageSends: ["ifTrue:", unescape("%3D"), "size", "labels", "do:", "at:", "ifFalse:", "with:", "li", "style:", unescape("%2C"), "span", "at:put:", "br"],
|
||||
referencedClasses: []
|
||||
}),
|
||||
smalltalk.IssueTile);
|
||||
|
||||
|
||||
|
||||
smalltalk.addClass('NewIssueDialog', smalltalk.HBDialog, [], 'Hubboard');
|
||||
|
@ -831,12 +848,12 @@ fn: function (html){
|
|||
var self=this;
|
||||
var currentUser=nil;
|
||||
(currentUser=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_user", []), "_at_", ["login"]));
|
||||
(function($rec){smalltalk.send($rec, "_at_put_", ["title", "Create a new issue"]);smalltalk.send($rec, "_id_", [self['@elementId']]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_name_", ["new_issue_form"]);smalltalk.send($rec, "_onSubmit_", [(function(event){smalltalk.send(self, "_submit", []);return smalltalk.send(event, "_preventDefault", []);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_for_", ["assignee"]);return smalltalk.send($rec, "_with_", ["Assign to: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["assignee"]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [currentUser]);return smalltalk.send($rec, "_with_", [currentUser]);})(smalltalk.send(html, "_option", []));})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["project"]);return smalltalk.send($rec, "_with_", ["Project: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["project"]);smalltalk.send($rec, "_onChange_", [(function(event){return smalltalk.send(self, "_updateCollaborators", []);})]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_sortedRepos", []), "_do_", [(function(repo){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_currentProject", []), "__eq", [repo])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));})() : (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));}), (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})]));})]);})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["title"]);return smalltalk.send($rec, "_with_", ["Title: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["title"]);return smalltalk.send($rec, "_at_put_", ["size", "40"]);})(smalltalk.send(html, "_input", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_with_", ["Add body"]);smalltalk.send($rec, "_class_", [unescape("dialog-add-body")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(smalltalk.send(unescape("%23dialog-body"), "_asJQuery", []), "_show", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_id_", [unescape("dialog-body")]);smalltalk.send($rec, "_style_", [unescape("display%3A%20none%3B")]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(html, "_with_", [(function($rec){smalltalk.send($rec, "_setName_", ["body"]);smalltalk.send($rec, "_setColumns_", [(40)]);return smalltalk.send($rec, "_setRows_", [(8)]);})(smalltalk.send((smalltalk.MarkdownTextArea || MarkdownTextArea), "_new", []))]);return smalltalk.send(html, "_br", []);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3A%20right%3B")]);smalltalk.send($rec, "_type_", ["submit"]);return smalltalk.send($rec, "_with_", ["Create"]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_form", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
(function($rec){smalltalk.send($rec, "_at_put_", ["title", "Create a new issue"]);smalltalk.send($rec, "_id_", [self['@elementId']]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_name_", ["new_issue_form"]);smalltalk.send($rec, "_onSubmit_", [(function(event){smalltalk.send(self, "_submit", []);return smalltalk.send(event, "_preventDefault", []);})]);return smalltalk.send($rec, "_with_", [(function(){(function($rec){smalltalk.send($rec, "_for_", ["assignee"]);return smalltalk.send($rec, "_with_", ["Assign to: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["assignee"]);return smalltalk.send($rec, "_with_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [currentUser]);return smalltalk.send($rec, "_with_", [currentUser]);})(smalltalk.send(html, "_option", []));})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["project"]);return smalltalk.send($rec, "_with_", ["Project: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["project"]);smalltalk.send($rec, "_onChange_", [(function(event){return smalltalk.send(self, "_updateCollaborators", []);})]);return smalltalk.send($rec, "_with_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_alphasortedRepos", []), "_do_", [(function(repo){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.HubboardApp || HubboardApp), "_current", []), "_currentProject", []), "__eq", [repo])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));})() : (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);smalltalk.send($rec, "_with_", [repo]);return smalltalk.send($rec, "_at_put_", ["selected", "true"]);})(smalltalk.send(html, "_option", []));}), (function(){return (function($rec){smalltalk.send($rec, "_value_", [repo]);return smalltalk.send($rec, "_with_", [repo]);})(smalltalk.send(html, "_option", []));})]));})]);})]);})(smalltalk.send(html, "_select", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_for_", ["title"]);return smalltalk.send($rec, "_with_", ["Title: "]);})(smalltalk.send(html, "_label", []));(function($rec){smalltalk.send($rec, "_name_", ["title"]);return smalltalk.send($rec, "_at_put_", ["size", "40"]);})(smalltalk.send(html, "_input", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_with_", ["Add body"]);smalltalk.send($rec, "_class_", [unescape("dialog-add-body")]);return smalltalk.send($rec, "_onClick_", [(function(){return smalltalk.send(smalltalk.send(unescape("%23dialog-body"), "_asJQuery", []), "_show", []);})]);})(smalltalk.send(html, "_a", []));smalltalk.send(html, "_br", []);(function($rec){smalltalk.send($rec, "_id_", [unescape("dialog-body")]);smalltalk.send($rec, "_style_", [unescape("display%3A%20none%3B")]);return smalltalk.send($rec, "_with_", [(function(){smalltalk.send(html, "_with_", [(function($rec){smalltalk.send($rec, "_setName_", ["body"]);smalltalk.send($rec, "_setColumns_", [(40)]);return smalltalk.send($rec, "_setRows_", [(8)]);})(smalltalk.send((smalltalk.MarkdownTextArea || MarkdownTextArea), "_new", []))]);return smalltalk.send(html, "_br", []);})]);})(smalltalk.send(html, "_div", []));return (function($rec){smalltalk.send($rec, "_style_", [unescape("float%3A%20right%3B")]);smalltalk.send($rec, "_type_", ["submit"]);return smalltalk.send($rec, "_with_", ["Create"]);})(smalltalk.send(html, "_button", []));})]);})(smalltalk.send(html, "_form", []));})]);})(smalltalk.send(html, "_div", []));
|
||||
smalltalk.send(self, "_becomeDialog_", [(function(){return smalltalk.send(smalltalk.send(unescape("%3Ainput%5Bname%3Dtitle%5D"), "_asJQuery", []), "_focus", []);})]);
|
||||
return self;},
|
||||
args: ["html"],
|
||||
source: unescape('renderOn%3A%20html%0A%09%7C%20currentUser%20%7C%0A%09currentUser%20%3A%3D%20HubboardApp%20current%20user%20at%3A%20%27login%27.%0A%0A%09html%20div%0A%09%09at%3A%20%27title%27%20put%3A%20%27Create%20a%20new%20issue%27%3B%0A%09%09id%3A%20elementId%3B%0A%09%09with%3A%20%5B%0A%09%09%09html%20form%20name%3A%20%27new_issue_form%27%3B%20onSubmit%3A%20%5B%20%3Aevent%20%7C%20self%20submit.%20event%20preventDefault%20%5D%3B%20with%3A%20%5B%0A%09%09%09%09html%20label%20for%3A%20%27assignee%27%3B%20with%3A%20%27Assign%20to%3A%20%27.%0A%09%09%09%09html%20select%20name%3A%20%27assignee%27%3B%0A%09%09%09%09%09with%3A%20%5B%20html%20option%20value%3A%20currentUser%3B%20with%3A%20currentUser.%20%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20label%20for%3A%20%27project%27%3B%20with%3A%20%27Project%3A%20%27.%0A%09%09%09%09html%20select%0A%09%09%09%09%09name%3A%20%27project%27%3B%0A%09%09%09%09%09onChange%3A%20%5B%20%3Aevent%20%7C%20self%20updateCollaborators%20%5D%3B%0A%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09HubboardApp%20current%20sortedRepos%20do%3A%20%5B%20%3Arepo%20%7C%0A%09%09%09%09%09%09%09%28HubboardApp%20current%20currentProject%29%20%3D%20repo%0A%09%09%09%09%09%09%09%09ifTrue%3A%20%5B%20html%20option%20value%3A%20repo%3B%20with%3A%20repo%3B%20at%3A%20%27selected%27%20put%3A%20%27true%27%20%5D%0A%09%09%09%09%09%09%09%09ifFalse%3A%20%5Bhtml%20option%20value%3A%20repo%3B%20with%3A%20repo%20%5D.%0A%09%09%09%09%09%09%09%5D%0A%09%09%09%09%09%09%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20label%20for%3A%20%27title%27%3B%20with%3A%20%27Title%3A%20%27.%0A%09%09%09%09html%20input%20name%3A%20%27title%27%3B%20at%3A%20%27size%27%20put%3A%20%2740%27.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20a%20with%3A%20%27Add%20body%27%3B%20class%3A%20%27dialog-add-body%27%3B%20onClick%3A%20%5B%20%27%23dialog-body%27%20asJQuery%20show%20%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20div%0A%09%09%09%09%09id%3A%20%27dialog-body%27%3B%0A%09%09%09%09%09style%3A%20%27display%3A%20none%3B%27%3B%0A%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09html%20with%3A%20%28MarkdownTextArea%20new%20setName%3A%20%27body%27%3B%20setColumns%3A%2040%3B%20setRows%3A%208%29.%0A%09%09%09%09%09%09html%20br.%0A%09%09%09%09%09%5D.%0A%09%09%09%09html%20button%20style%3A%20%27float%3A%20right%3B%27%3B%20type%3A%20%27submit%27%3B%20with%3A%20%27Create%27.%0A%09%09%09%5D%0A%09%5D.%0A%0A%09self%20becomeDialog%3A%20%5B%20%27%3Ainput%5Bname%3Dtitle%5D%27%20asJQuery%20focus%20%5D.'),
|
||||
messageSends: ["at:", "user", "current", "at:put:", "id:", "with:", "name:", "onSubmit:", "submit", "preventDefault", "for:", "label", "value:", "option", "select", "br", "onChange:", "updateCollaborators", "do:", "sortedRepos", "ifTrue:ifFalse:", unescape("%3D"), "currentProject", "input", "class:", "onClick:", "show", "asJQuery", "a", "style:", "setName:", "setColumns:", "setRows:", "new", "div", "type:", "button", "form", "becomeDialog:", "focus"],
|
||||
source: unescape('renderOn%3A%20html%0A%09%7C%20currentUser%20%7C%0A%09currentUser%20%3A%3D%20HubboardApp%20current%20user%20at%3A%20%27login%27.%0A%0A%09html%20div%0A%09%09at%3A%20%27title%27%20put%3A%20%27Create%20a%20new%20issue%27%3B%0A%09%09id%3A%20elementId%3B%0A%09%09with%3A%20%5B%0A%09%09%09html%20form%20name%3A%20%27new_issue_form%27%3B%20onSubmit%3A%20%5B%20%3Aevent%20%7C%20self%20submit.%20event%20preventDefault%20%5D%3B%20with%3A%20%5B%0A%09%09%09%09html%20label%20for%3A%20%27assignee%27%3B%20with%3A%20%27Assign%20to%3A%20%27.%0A%09%09%09%09html%20select%20name%3A%20%27assignee%27%3B%0A%09%09%09%09%09with%3A%20%5B%20html%20option%20value%3A%20currentUser%3B%20with%3A%20currentUser.%20%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20label%20for%3A%20%27project%27%3B%20with%3A%20%27Project%3A%20%27.%0A%09%09%09%09html%20select%0A%09%09%09%09%09name%3A%20%27project%27%3B%0A%09%09%09%09%09onChange%3A%20%5B%20%3Aevent%20%7C%20self%20updateCollaborators%20%5D%3B%0A%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09HubboardApp%20current%20alphasortedRepos%20do%3A%20%5B%20%3Arepo%20%7C%0A%09%09%09%09%09%09%09%28HubboardApp%20current%20currentProject%29%20%3D%20repo%0A%09%09%09%09%09%09%09%09ifTrue%3A%20%5B%20html%20option%20value%3A%20repo%3B%20with%3A%20repo%3B%20at%3A%20%27selected%27%20put%3A%20%27true%27%20%5D%0A%09%09%09%09%09%09%09%09ifFalse%3A%20%5Bhtml%20option%20value%3A%20repo%3B%20with%3A%20repo%20%5D.%0A%09%09%09%09%09%09%09%5D%0A%09%09%09%09%09%09%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20label%20for%3A%20%27title%27%3B%20with%3A%20%27Title%3A%20%27.%0A%09%09%09%09html%20input%20name%3A%20%27title%27%3B%20at%3A%20%27size%27%20put%3A%20%2740%27.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20a%20with%3A%20%27Add%20body%27%3B%20class%3A%20%27dialog-add-body%27%3B%20onClick%3A%20%5B%20%27%23dialog-body%27%20asJQuery%20show%20%5D.%0A%09%09%09%09html%20br.%0A%09%09%09%09html%20div%0A%09%09%09%09%09id%3A%20%27dialog-body%27%3B%0A%09%09%09%09%09style%3A%20%27display%3A%20none%3B%27%3B%0A%09%09%09%09%09with%3A%20%5B%0A%09%09%09%09%09%09html%20with%3A%20%28MarkdownTextArea%20new%20setName%3A%20%27body%27%3B%20setColumns%3A%2040%3B%20setRows%3A%208%29.%0A%09%09%09%09%09%09html%20br.%0A%09%09%09%09%09%5D.%0A%09%09%09%09html%20button%20style%3A%20%27float%3A%20right%3B%27%3B%20type%3A%20%27submit%27%3B%20with%3A%20%27Create%27.%0A%09%09%09%5D%0A%09%5D.%0A%0A%09self%20becomeDialog%3A%20%5B%20%27%3Ainput%5Bname%3Dtitle%5D%27%20asJQuery%20focus%20%5D.'),
|
||||
messageSends: ["at:", "user", "current", "at:put:", "id:", "with:", "name:", "onSubmit:", "submit", "preventDefault", "for:", "label", "value:", "option", "select", "br", "onChange:", "updateCollaborators", "do:", "alphasortedRepos", "ifTrue:ifFalse:", unescape("%3D"), "currentProject", "input", "class:", "onClick:", "show", "asJQuery", "a", "style:", "setName:", "setColumns:", "setRows:", "new", "div", "type:", "button", "form", "becomeDialog:", "focus"],
|
||||
referencedClasses: ["HubboardApp", "MarkdownTextArea"]
|
||||
}),
|
||||
smalltalk.NewIssueDialog);
|
||||
|
|
569
st/Hubboard.st
569
st/Hubboard.st
|
@ -1,4 +1,293 @@
|
|||
Smalltalk current createPackage: 'Hubboard' properties: #{}!
|
||||
Widget subclass: #HBDialog
|
||||
instanceVariableNames: 'modal minWidth draggable elementId position maxHeight'
|
||||
category: 'Hubboard'!
|
||||
|
||||
!HBDialog methodsFor: 'accessors'!
|
||||
|
||||
elementId
|
||||
^ ('#', elementId).
|
||||
!
|
||||
|
||||
asJQuery
|
||||
^ self elementId asJQuery.
|
||||
! !
|
||||
|
||||
!HBDialog methodsFor: 'dialog-helpers'!
|
||||
|
||||
becomeDialog
|
||||
^ self becomeDialog: [].
|
||||
!
|
||||
|
||||
becomeDialog: aBlockCallback
|
||||
self asJQuery dialog: #{
|
||||
'modal' -> modal.
|
||||
'minWidth' -> minWidth.
|
||||
'maxHeight' -> maxHeight.
|
||||
'draggable' -> draggable.
|
||||
'position' -> position.
|
||||
'close' -> [ :event :ui |
|
||||
self asJQuery remove.
|
||||
]}.
|
||||
aBlockCallback value.
|
||||
! !
|
||||
|
||||
!HBDialog methodsFor: 'initializers'!
|
||||
|
||||
initialize
|
||||
super initialize.
|
||||
modal := true.
|
||||
minWidth := 500.
|
||||
maxHeight := 500.
|
||||
draggable := false.
|
||||
position := 'center'.
|
||||
! !
|
||||
|
||||
!HBDialog class methodsFor: 'not yet classified'!
|
||||
|
||||
show
|
||||
" Creates and adds the DOM elements to the body tag "
|
||||
| dialog |
|
||||
dialog := super new.
|
||||
dialog appendToJQuery: ('body' asJQuery).
|
||||
! !
|
||||
|
||||
Object subclass: #HubboardApp
|
||||
instanceVariableNames: 'token issueMap issueApi userApi knownRepos userData refreshIntervalId currentProject refreshInterval sortedRepos assignedProjects alphasortedRepos'
|
||||
category: 'Hubboard'!
|
||||
|
||||
!HubboardApp methodsFor: 'accessors'!
|
||||
|
||||
inProgress: arrayOfLabels
|
||||
"Return true if we find the 'in-progress' label"
|
||||
arrayOfLabels ifNil: [ ^ false ].
|
||||
|
||||
arrayOfLabels do: [ :label |
|
||||
(label at: 'name') = 'in-progress' ifTrue: [ ^ true ].
|
||||
].
|
||||
^ false.
|
||||
!
|
||||
|
||||
knownRepos
|
||||
^ knownRepos.
|
||||
!
|
||||
|
||||
issueMap
|
||||
^ issueMap.
|
||||
!
|
||||
|
||||
user
|
||||
^ userData.
|
||||
!
|
||||
|
||||
currentProject
|
||||
^ currentProject.
|
||||
!
|
||||
|
||||
sortedRepos
|
||||
" Return an Array of repos (owner/reponame) sorted by the most recently updated "
|
||||
^ sortedRepos ifNil: [
|
||||
| names |
|
||||
names := knownRepos keys.
|
||||
sortedRepos := names sort: [ :left :right |
|
||||
((knownRepos at: left) at: 'updated_at') > ((knownRepos at: right) at: 'updated_at')
|
||||
].
|
||||
].
|
||||
!
|
||||
|
||||
setKnownRepos: newKnownRepos
|
||||
" Ideally, this method should not really be used outside of test cases "
|
||||
knownRepos := newKnownRepos.
|
||||
!
|
||||
|
||||
assignedProjects
|
||||
^ assignedProjects.
|
||||
!
|
||||
|
||||
issueApi
|
||||
^ issueApi.
|
||||
!
|
||||
|
||||
alphasortedRepos
|
||||
" Return an Array of repos (owner/reponame) sorted by the most recently updated "
|
||||
^ alphasortedRepos ifNil: [
|
||||
| names |
|
||||
names := knownRepos keys.
|
||||
alphasortedRepos := names sort: [ :left :right |
|
||||
((knownRepos at: left) at: 'name') asLowercase < ((knownRepos at: right) at: 'name') asLowercase
|
||||
].
|
||||
].
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'actions'!
|
||||
|
||||
handleDrop: theEvent with: aWidget
|
||||
" This function should handle the initial drop of one IssueTile onto a new column "
|
||||
| tile currentParent newParent issueId |
|
||||
issueId := ((aWidget draggable at: 0) at: 'id').
|
||||
tile := issueMap at: (((issueId split: 'issuetile_') at: 2) asNumber).
|
||||
"jQuery is going to give this to us in an array, how annoying"
|
||||
currentParent := (tile asJQuery parent at: 0) at: 'id'.
|
||||
newParent := theEvent target at: 'id'.
|
||||
|
||||
tile asJQuery css: 'position' is:'static'.
|
||||
|
||||
"We will receive drag events onto the same column, don't do anything in that case"
|
||||
currentParent = newParent ifTrue: [ ^ true ].
|
||||
('#', newParent) asJQuery append: (tile asJQuery detach).
|
||||
|
||||
tile moveTo: newParent.
|
||||
!
|
||||
|
||||
refresh
|
||||
self flushColumns.
|
||||
issueApi issues: [ :issue |
|
||||
| tile issueId |
|
||||
issueId := issue issueId.
|
||||
tile := issueMap at: issueId ifAbsent: [ IssueTile new ].
|
||||
tile withModel: issue.
|
||||
assignedProjects add: (issue projectName).
|
||||
issueMap at: issueId put: tile.
|
||||
(self inProgress: (issue labels))
|
||||
ifFalse: [ tile setOpen. tile appendToJQuery: ('#openissues' asJQuery) ]
|
||||
ifTrue: [ tile setInProgress. tile appendToJQuery: ('#inprogressissues' asJQuery) ].
|
||||
currentProject ifNotNil: [
|
||||
currentProject = (issue projectName) ifFalse: [tile asJQuery hide].
|
||||
].
|
||||
self updateFilter.
|
||||
] finally: [ self hideSpinner ].
|
||||
|
||||
issueApi recentlyClosed: [ :issue |
|
||||
| tile issueId |
|
||||
issueId := issue issueId.
|
||||
tile := issueMap at: issueId ifAbsent: [ IssueTile new ].
|
||||
tile withModel: issue.
|
||||
tile setClosed.
|
||||
tile appendToJQuery: ('#closedissues' asJQuery).
|
||||
currentProject ifNotNil: [
|
||||
currentProject = (issue projectName) ifFalse: [tile asJQuery hide].
|
||||
]
|
||||
] loadAll: false.
|
||||
!
|
||||
|
||||
updateFilter
|
||||
| element |
|
||||
" If we have a currently selected project, no sense in running the rest of this code "
|
||||
currentProject ifNotNil: [ ^ true ].
|
||||
|
||||
element := '.projectselect' asJQuery.
|
||||
element change: [ :event |
|
||||
| project |
|
||||
project := element val.
|
||||
project = 'All'
|
||||
ifTrue: [ self showAll ]
|
||||
ifFalse: [ self showOnly: project ].
|
||||
].
|
||||
element empty.
|
||||
|
||||
[ :html | html option value: 'All'; with: 'View All Projects' ] appendToJQuery: element.
|
||||
self issueMap values do: [ :issue | assignedProjects add: (issue model projectName) ].
|
||||
assignedProjects do: [ :project |
|
||||
[ :html | html option value: project; with: project ] appendToJQuery: element.
|
||||
].
|
||||
!
|
||||
|
||||
startRefreshTimer
|
||||
refreshIntervalId ifNil: [
|
||||
refreshIntervalId := window setInterval: [ self refresh ] every: refreshInterval.
|
||||
].
|
||||
!
|
||||
|
||||
stopRefreshTimer
|
||||
refreshIntervalId ifNotNil: [
|
||||
window clearInterval: refreshIntervalId.
|
||||
refreshIntervalId := nil.
|
||||
].
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'initializers'!
|
||||
|
||||
initialize
|
||||
token := window at: 'github_access_token'.
|
||||
issueMap := Dictionary new.
|
||||
knownRepos := Dictionary new.
|
||||
assignedProjects := Set new.
|
||||
refreshInterval := 300000.
|
||||
!
|
||||
|
||||
bootstrap
|
||||
issueApi := Issues new setToken: token.
|
||||
userApi := Users new setToken: token.
|
||||
self showSpinner.
|
||||
userApi fetchCurrent: [ :data |
|
||||
| allRepos |
|
||||
allRepos := Array new.
|
||||
userData := data.
|
||||
'#logout-username' asJQuery text: ('(', (data at: 'login'), ')').
|
||||
" Once we have information about the user, let's fire up our repo backfill "
|
||||
Repo fetchReposForToken: token withEachDo: [ :result | (result at: 'has_issues') ifTrue: [ allRepos add: result ] ]
|
||||
finally: [
|
||||
allRepos do: [ :item |
|
||||
| owner |
|
||||
owner := ((item at: 'owner') at: 'login').
|
||||
knownRepos at: (owner, '/', (item at: 'name')) put: item.
|
||||
].
|
||||
':input[name=create_issue]' asJQuery removeAttr: 'disabled'.
|
||||
self sortedRepos. "Pre-sort our repos just to make things easier on the user"
|
||||
].
|
||||
].
|
||||
self refresh.
|
||||
self startRefreshTimer.
|
||||
'.issuecolumn' asJQuery droppable: #{
|
||||
'tolerance' -> 'pointer'.
|
||||
'accept' -> '.issuetile'.
|
||||
'drop' -> [ :event :ui | self handleDrop: event with: ui]}.
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'ui'!
|
||||
|
||||
showAll
|
||||
"Make sure all issue tiles are visible"
|
||||
currentProject := nil.
|
||||
'.issuetile' asJQuery show.
|
||||
!
|
||||
|
||||
showOnly: aProjectName
|
||||
"Only show tiles with data-project=aProjectName"
|
||||
currentProject := aProjectName.
|
||||
'.issuetile' asJQuery hide.
|
||||
('.issuetile[data-project="', aProjectName, '"]') asJQuery show.
|
||||
!
|
||||
|
||||
flushColumns
|
||||
| clearBlock |
|
||||
clearBlock := [ :index :element |
|
||||
| item |
|
||||
item := window jQuery: element.
|
||||
item draggable: 'destroy'.
|
||||
item remove removeData.
|
||||
].
|
||||
'#openissues > *' asJQuery each: clearBlock.
|
||||
'#inprogressissues > *' asJQuery each: clearBlock.
|
||||
'#closedissues > *' asJQuery each: clearBlock.
|
||||
!
|
||||
|
||||
showSpinner
|
||||
'#spinner' asJQuery show.
|
||||
!
|
||||
|
||||
hideSpinner
|
||||
'#spinner' asJQuery hide.
|
||||
! !
|
||||
|
||||
HubboardApp class instanceVariableNames: 'current'!
|
||||
|
||||
!HubboardApp class methodsFor: 'not yet classified'!
|
||||
|
||||
current
|
||||
^ current ifNil: [ current := super new ].
|
||||
! !
|
||||
|
||||
Widget subclass: #IssueTile
|
||||
instanceVariableNames: 'raw title body issueId number project projectOwner issueStatus comments fullProjectName elementId model'
|
||||
category: 'Hubboard'!
|
||||
|
@ -198,284 +487,6 @@ renderLabels: html
|
|||
rendered ifTrue: [ html br at: 'clear' put: 'left' ].
|
||||
! !
|
||||
|
||||
Object subclass: #HubboardApp
|
||||
instanceVariableNames: 'token issueMap issueApi userApi knownRepos userData refreshIntervalId currentProject refreshInterval sortedRepos assignedProjects'
|
||||
category: 'Hubboard'!
|
||||
|
||||
!HubboardApp methodsFor: 'accessors'!
|
||||
|
||||
inProgress: arrayOfLabels
|
||||
"Return true if we find the 'in-progress' label"
|
||||
arrayOfLabels ifNil: [ ^ false ].
|
||||
|
||||
arrayOfLabels do: [ :label |
|
||||
(label at: 'name') = 'in-progress' ifTrue: [ ^ true ].
|
||||
].
|
||||
^ false.
|
||||
!
|
||||
|
||||
knownRepos
|
||||
^ knownRepos.
|
||||
!
|
||||
|
||||
issueMap
|
||||
^ issueMap.
|
||||
!
|
||||
|
||||
user
|
||||
^ userData.
|
||||
!
|
||||
|
||||
currentProject
|
||||
^ currentProject.
|
||||
!
|
||||
|
||||
sortedRepos
|
||||
" Return an Array of repos (owner/reponame) sorted by the most recently updated "
|
||||
^ sortedRepos ifNil: [
|
||||
| names |
|
||||
names := knownRepos keys.
|
||||
sortedRepos := names sort: [ :left :right |
|
||||
((knownRepos at: left) at: 'updated_at') > ((knownRepos at: right) at: 'updated_at')
|
||||
].
|
||||
].
|
||||
!
|
||||
|
||||
setKnownRepos: newKnownRepos
|
||||
" Ideally, this method should not really be used outside of test cases "
|
||||
knownRepos := newKnownRepos.
|
||||
!
|
||||
|
||||
assignedProjects
|
||||
^ assignedProjects.
|
||||
!
|
||||
|
||||
issueApi
|
||||
^ issueApi.
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'actions'!
|
||||
|
||||
handleDrop: theEvent with: aWidget
|
||||
" This function should handle the initial drop of one IssueTile onto a new column "
|
||||
| tile currentParent newParent issueId |
|
||||
issueId := ((aWidget draggable at: 0) at: 'id').
|
||||
tile := issueMap at: (((issueId split: 'issuetile_') at: 2) asNumber).
|
||||
"jQuery is going to give this to us in an array, how annoying"
|
||||
currentParent := (tile asJQuery parent at: 0) at: 'id'.
|
||||
newParent := theEvent target at: 'id'.
|
||||
|
||||
tile asJQuery css: 'position' is:'static'.
|
||||
|
||||
"We will receive drag events onto the same column, don't do anything in that case"
|
||||
currentParent = newParent ifTrue: [ ^ true ].
|
||||
('#', newParent) asJQuery append: (tile asJQuery detach).
|
||||
|
||||
tile moveTo: newParent.
|
||||
!
|
||||
|
||||
refresh
|
||||
self flushColumns.
|
||||
issueApi issues: [ :issue |
|
||||
| tile issueId |
|
||||
issueId := issue issueId.
|
||||
tile := issueMap at: issueId ifAbsent: [ IssueTile new ].
|
||||
tile withModel: issue.
|
||||
assignedProjects add: (issue projectName).
|
||||
issueMap at: issueId put: tile.
|
||||
(self inProgress: (issue labels))
|
||||
ifFalse: [ tile setOpen. tile appendToJQuery: ('#openissues' asJQuery) ]
|
||||
ifTrue: [ tile setInProgress. tile appendToJQuery: ('#inprogressissues' asJQuery) ].
|
||||
currentProject ifNotNil: [
|
||||
currentProject = (issue projectName) ifFalse: [tile asJQuery hide].
|
||||
].
|
||||
self updateFilter.
|
||||
] finally: [ self hideSpinner ].
|
||||
|
||||
issueApi recentlyClosed: [ :issue |
|
||||
| tile issueId |
|
||||
issueId := issue issueId.
|
||||
tile := issueMap at: issueId ifAbsent: [ IssueTile new ].
|
||||
tile withModel: issue.
|
||||
tile setClosed.
|
||||
tile appendToJQuery: ('#closedissues' asJQuery).
|
||||
currentProject ifNotNil: [
|
||||
currentProject = (issue projectName) ifFalse: [tile asJQuery hide].
|
||||
]
|
||||
] loadAll: false.
|
||||
!
|
||||
|
||||
updateFilter
|
||||
| element |
|
||||
" If we have a currently selected project, no sense in running the rest of this code "
|
||||
currentProject ifNotNil: [ ^ true ].
|
||||
|
||||
element := '.projectselect' asJQuery.
|
||||
element change: [ :event |
|
||||
| project |
|
||||
project := element val.
|
||||
project = 'All'
|
||||
ifTrue: [ self showAll ]
|
||||
ifFalse: [ self showOnly: project ].
|
||||
].
|
||||
element empty.
|
||||
|
||||
[ :html | html option value: 'All'; with: 'View All Projects' ] appendToJQuery: element.
|
||||
self issueMap values do: [ :issue | assignedProjects add: (issue model projectName) ].
|
||||
assignedProjects do: [ :project |
|
||||
[ :html | html option value: project; with: project ] appendToJQuery: element.
|
||||
].
|
||||
!
|
||||
|
||||
startRefreshTimer
|
||||
refreshIntervalId ifNil: [
|
||||
refreshIntervalId := window setInterval: [ self refresh ] every: refreshInterval.
|
||||
].
|
||||
!
|
||||
|
||||
stopRefreshTimer
|
||||
refreshIntervalId ifNotNil: [
|
||||
window clearInterval: refreshIntervalId.
|
||||
refreshIntervalId := nil.
|
||||
].
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'initializers'!
|
||||
|
||||
initialize
|
||||
token := window at: 'github_access_token'.
|
||||
issueMap := Dictionary new.
|
||||
knownRepos := Dictionary new.
|
||||
assignedProjects := Set new.
|
||||
refreshInterval := 300000.
|
||||
!
|
||||
|
||||
bootstrap
|
||||
issueApi := Issues new setToken: token.
|
||||
userApi := Users new setToken: token.
|
||||
self showSpinner.
|
||||
userApi fetchCurrent: [ :data |
|
||||
| allRepos |
|
||||
allRepos := Array new.
|
||||
userData := data.
|
||||
'#logout-username' asJQuery text: ('(', (data at: 'login'), ')').
|
||||
" Once we have information about the user, let's fire up our repo backfill "
|
||||
Repo fetchReposForToken: token withEachDo: [ :result | (result at: 'has_issues') ifTrue: [ allRepos add: result ] ]
|
||||
finally: [
|
||||
allRepos do: [ :item |
|
||||
| owner |
|
||||
owner := ((item at: 'owner') at: 'login').
|
||||
knownRepos at: (owner, '/', (item at: 'name')) put: item.
|
||||
].
|
||||
':input[name=create_issue]' asJQuery removeAttr: 'disabled'.
|
||||
self sortedRepos. "Pre-sort our repos just to make things easier on the user"
|
||||
].
|
||||
].
|
||||
self refresh.
|
||||
self startRefreshTimer.
|
||||
'.issuecolumn' asJQuery droppable: #{
|
||||
'tolerance' -> 'pointer'.
|
||||
'accept' -> '.issuetile'.
|
||||
'drop' -> [ :event :ui | self handleDrop: event with: ui]}.
|
||||
! !
|
||||
|
||||
!HubboardApp methodsFor: 'ui'!
|
||||
|
||||
showAll
|
||||
"Make sure all issue tiles are visible"
|
||||
currentProject := nil.
|
||||
'.issuetile' asJQuery show.
|
||||
!
|
||||
|
||||
showOnly: aProjectName
|
||||
"Only show tiles with data-project=aProjectName"
|
||||
currentProject := aProjectName.
|
||||
'.issuetile' asJQuery hide.
|
||||
('.issuetile[data-project="', aProjectName, '"]') asJQuery show.
|
||||
!
|
||||
|
||||
flushColumns
|
||||
| clearBlock |
|
||||
clearBlock := [ :index :element |
|
||||
| item |
|
||||
item := window jQuery: element.
|
||||
item draggable: 'destroy'.
|
||||
item remove removeData.
|
||||
].
|
||||
'#openissues > *' asJQuery each: clearBlock.
|
||||
'#inprogressissues > *' asJQuery each: clearBlock.
|
||||
'#closedissues > *' asJQuery each: clearBlock.
|
||||
!
|
||||
|
||||
showSpinner
|
||||
'#spinner' asJQuery show.
|
||||
!
|
||||
|
||||
hideSpinner
|
||||
'#spinner' asJQuery hide.
|
||||
! !
|
||||
|
||||
HubboardApp class instanceVariableNames: 'current'!
|
||||
|
||||
!HubboardApp class methodsFor: 'not yet classified'!
|
||||
|
||||
current
|
||||
^ current ifNil: [ current := super new ].
|
||||
! !
|
||||
|
||||
Widget subclass: #HBDialog
|
||||
instanceVariableNames: 'modal minWidth draggable elementId position maxHeight'
|
||||
category: 'Hubboard'!
|
||||
|
||||
!HBDialog methodsFor: 'accessors'!
|
||||
|
||||
elementId
|
||||
^ ('#', elementId).
|
||||
!
|
||||
|
||||
asJQuery
|
||||
^ self elementId asJQuery.
|
||||
! !
|
||||
|
||||
!HBDialog methodsFor: 'dialog-helpers'!
|
||||
|
||||
becomeDialog
|
||||
^ self becomeDialog: [].
|
||||
!
|
||||
|
||||
becomeDialog: aBlockCallback
|
||||
self asJQuery dialog: #{
|
||||
'modal' -> modal.
|
||||
'minWidth' -> minWidth.
|
||||
'maxHeight' -> maxHeight.
|
||||
'draggable' -> draggable.
|
||||
'position' -> position.
|
||||
'close' -> [ :event :ui |
|
||||
self asJQuery remove.
|
||||
]}.
|
||||
aBlockCallback value.
|
||||
! !
|
||||
|
||||
!HBDialog methodsFor: 'initializers'!
|
||||
|
||||
initialize
|
||||
super initialize.
|
||||
modal := true.
|
||||
minWidth := 500.
|
||||
maxHeight := 500.
|
||||
draggable := false.
|
||||
position := 'center'.
|
||||
! !
|
||||
|
||||
!HBDialog class methodsFor: 'not yet classified'!
|
||||
|
||||
show
|
||||
" Creates and adds the DOM elements to the body tag "
|
||||
| dialog |
|
||||
dialog := super new.
|
||||
dialog appendToJQuery: ('body' asJQuery).
|
||||
! !
|
||||
|
||||
HBDialog subclass: #NewIssueDialog
|
||||
instanceVariableNames: ''
|
||||
category: 'Hubboard'!
|
||||
|
@ -529,7 +540,7 @@ renderOn: html
|
|||
name: 'project';
|
||||
onChange: [ :event | self updateCollaborators ];
|
||||
with: [
|
||||
HubboardApp current sortedRepos do: [ :repo |
|
||||
HubboardApp current alphasortedRepos do: [ :repo |
|
||||
(HubboardApp current currentProject) = repo
|
||||
ifTrue: [ html option value: repo; with: repo; at: 'selected' put: 'true' ]
|
||||
ifFalse: [html option value: repo; with: repo ].
|
||||
|
|
Loading…
Reference in New Issue