90 lines
2.8 KiB
JavaScript
90 lines
2.8 KiB
JavaScript
/**
|
|
* Creates an observable build job.
|
|
*/
|
|
function Job(data) {
|
|
this.number = ko.observable(data.number);
|
|
this.commit = ko.observable(data.commit);
|
|
this.started_at = ko.observable(data.started_at);
|
|
this.finished_at = ko.observable(data.finished_at);
|
|
this.exit_code = ko.observable(data.exit_code);
|
|
this.status = ko.observable(data.status);
|
|
this.environment = ko.observable(data.environment);
|
|
}
|
|
|
|
/**
|
|
* Creates an observable build.
|
|
*/
|
|
function Build(data) {
|
|
this.number = ko.observable(data.number);
|
|
this.commit = ko.observable(data.commit);
|
|
this.branch = ko.observable(data.branch);
|
|
this.author = ko.observable(data.author);
|
|
this.message = ko.observable(data.message);
|
|
this.status = ko.observable(data.status);
|
|
this.event = ko.observable(data.event);
|
|
this.started_at = ko.observable(data.started_at);
|
|
this.finished_at = ko.observable(data.finished_at);
|
|
}
|
|
|
|
/**
|
|
* Creates an observable repository.
|
|
*/
|
|
function Repo(data) {
|
|
this.full_name = ko.observable(data.full_name);
|
|
this.owner = ko.observable(data.owner);
|
|
this.name = ko.observable(data.name);
|
|
this.private = ko.observable(data.private);
|
|
this.trusted = ko.observable(data.trusted);
|
|
this.timeout = ko.observable(data.timeout);
|
|
this.avatar_url = ko.observable(data.avatar_url);
|
|
this.clone_url = ko.observable(data.clone_url);
|
|
this.link_url = ko.observable(data.link_url);
|
|
this.starred = ko.observable(data.starred || false);
|
|
this.events = ko.observable(data.events);
|
|
this.hook = ko.observable(new Hook(data));
|
|
}
|
|
|
|
/**
|
|
* Compares two repository objects by name. Used to sort
|
|
* a list of repositories.
|
|
*/
|
|
function RepoCompare(a, b) {
|
|
return a.full_name().toLowerCase() > b.full_name().toLowerCase() ? 1 : -1;
|
|
}
|
|
|
|
/**
|
|
* Creates an observable object that stores a list of hook event
|
|
* types (push, pull request, etc) and true or false if enabled.
|
|
*/
|
|
function Hook(repo) {
|
|
var data = {
|
|
"pull_request" : repo.events.indexOf("pull_request") !== -1,
|
|
"push" : repo.events.indexOf("push") !== -1,
|
|
"tag" : repo.events.indexOf("tag") !== -1,
|
|
"deploy" : repo.events.indexOf("deploy") !== -1
|
|
};
|
|
|
|
this.pull_request = ko.observable(data.pull_request);
|
|
this.push = ko.observable(data.push);
|
|
this.tag = ko.observable(data.tag);
|
|
this.deploy = ko.observable(data.deploy);
|
|
}
|
|
|
|
/**
|
|
* Creates an observable user.
|
|
*/
|
|
function User(data) {
|
|
this.login = ko.observable(data.login);
|
|
this.email = ko.observable(data.email);
|
|
this.avatar_url = ko.observable(data.avatar_url);
|
|
this.active = ko.observable(data.active);
|
|
this.admin = ko.observable(data.admin);
|
|
}
|
|
|
|
/**
|
|
* Compares two user objects by login. Used to sort
|
|
* a list of users.
|
|
*/
|
|
function UserCompare(a, b) {
|
|
return a.login().toLowerCase() > b.login().toLowerCase() ? 1 : -1;
|
|
}
|