mirror of
https://github.com/documize/community.git
synced 2025-07-21 22:29:41 +02:00
1st cut rejigged edit page, unused code commented out for now
This commit is contained in:
parent
603db6fc15
commit
b42fc1f84d
5 changed files with 221 additions and 143 deletions
|
@ -112,10 +112,10 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
getOwnerLists() {
|
||||
this.set('busy', true);
|
||||
|
||||
let self = this;
|
||||
//let self = this;
|
||||
let owners = this.get('owners');
|
||||
let thisOwner = this.get('config.owner');
|
||||
let page = this.get('page');
|
||||
//let page = this.get('page');
|
||||
|
||||
if (is.null(thisOwner) || is.undefined(thisOwner)) {
|
||||
if (owners.length) {
|
||||
|
@ -128,6 +128,7 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
|
||||
this.set('owner', thisOwner);
|
||||
|
||||
/*
|
||||
this.get('sectionService').fetch(page, "repos", self.get('config'))
|
||||
.then(function (lists) {
|
||||
self.set('busy', false);
|
||||
|
@ -139,8 +140,18 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
self.showNotification("Unable to fetch repositories");
|
||||
console.log(error);
|
||||
});
|
||||
*/
|
||||
this.getOrgReposLists();
|
||||
|
||||
if (is.undefined(this.get('initDateTimePicker'))) {
|
||||
$.datetimepicker.setLocale('en');
|
||||
$('#branch-since').datetimepicker();
|
||||
this.set('initDateTimePicker', "Done");
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/*
|
||||
getRepoLists() {
|
||||
this.set('busy', true);
|
||||
|
||||
|
@ -266,7 +277,53 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
console.log(error);
|
||||
});
|
||||
},
|
||||
*/
|
||||
|
||||
getOrgReposLists() {
|
||||
this.set('busy', true);
|
||||
|
||||
let self = this;
|
||||
let page = this.get('page');
|
||||
|
||||
this.get('sectionService').fetch(page, "orgrepos", self.get('config'))
|
||||
.then(function (lists) {
|
||||
let savedLists = self.get('config.lists');
|
||||
if (savedLists === null) {
|
||||
savedLists = [];
|
||||
}
|
||||
|
||||
if (lists.length > 0) {
|
||||
let noIncluded = true;
|
||||
|
||||
lists.forEach(function (list) {
|
||||
let included = false;
|
||||
var saved;
|
||||
if (is.not.undefined(savedLists)) {
|
||||
saved = savedLists.findBy("id", list.id);
|
||||
}
|
||||
if (is.not.undefined(saved)) {
|
||||
included = saved.included;
|
||||
noIncluded = false;
|
||||
}
|
||||
list.included = included;
|
||||
});
|
||||
|
||||
if (noIncluded) {
|
||||
lists[0].included = true; // make the first entry the default
|
||||
}
|
||||
}
|
||||
|
||||
self.set('config.lists', lists);
|
||||
self.set('busy', false);
|
||||
}, function (error) { //jshint ignore: line
|
||||
self.set('busy', false);
|
||||
self.set('authenticated', false);
|
||||
self.showNotification("Unable to fetch repository branches");
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
|
||||
/*
|
||||
getLabelLists() {
|
||||
this.set('busy', true);
|
||||
|
||||
|
@ -330,6 +387,7 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
console.log(error);
|
||||
});
|
||||
},
|
||||
*/
|
||||
|
||||
actions: {
|
||||
isDirty() {
|
||||
|
@ -341,15 +399,16 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
let list = lists.findBy('id', id);
|
||||
|
||||
// restore the list of branches to the default state
|
||||
lists.forEach(function (lst) {
|
||||
Ember.set(lst, 'included', false);
|
||||
});
|
||||
//lists.forEach(function (lst) {
|
||||
// Ember.set(lst, 'included', false);
|
||||
//});
|
||||
|
||||
if (list !== null) {
|
||||
Ember.set(list, 'included', !list.included);
|
||||
}
|
||||
},
|
||||
|
||||
/*
|
||||
onLabelCheckbox(id) {
|
||||
let lists = this.get('config.lists');
|
||||
let list = lists.findBy('id', id);
|
||||
|
@ -358,6 +417,7 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
Ember.set(list, 'included', !list.included);
|
||||
}
|
||||
},
|
||||
*/
|
||||
|
||||
authStage2() {
|
||||
let self = this;
|
||||
|
@ -399,6 +459,7 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
this.getOwnerLists();
|
||||
},
|
||||
|
||||
/*
|
||||
onRepoChange(thisRepo) {
|
||||
this.set('isDirty', true);
|
||||
this.set('config.repo', thisRepo);
|
||||
|
@ -411,6 +472,7 @@ export default Ember.Component.extend(SectionMixin, NotifierMixin, TooltipMixin,
|
|||
this.set('config.report', thisReport);
|
||||
this.getReportLists();
|
||||
},
|
||||
*/
|
||||
|
||||
onStateChange(thisState) {
|
||||
this.set('config.state', thisState);
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
<div class="pull-left width-45">
|
||||
<div class="input-form">
|
||||
<div class="heading">
|
||||
<div class="title">Select Repository</div>
|
||||
<div class="title">Select Repositories</div>
|
||||
<div class="tip">Choose source of code information to be displayed</div>
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Organizations and User</label>
|
||||
<div class="tip">Select organization or username</div>
|
||||
<label>Organization or User</label>
|
||||
<div class="tip">Select organization or username whose repositories you want to show</div>
|
||||
{{ui-select id="owners-dropdown" content=owners action=(action 'onOwnerChange') optionValuePath="id" optionLabelPath="name" selection=config.owner}}
|
||||
</div>
|
||||
{{#if noRepos}}
|
||||
|
@ -21,22 +21,8 @@
|
|||
</div>
|
||||
{{else}}
|
||||
<div class="input-control">
|
||||
<label>Repositories</label>
|
||||
<div class="tip">Select repository</div>
|
||||
{{ui-select id="repos-dropdown" content=repos action=(action 'onRepoChange') optionValuePath="id" optionLabelPath="name" selection=config.repo}}
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Report</label>
|
||||
<div class="tip">Select report type</div>
|
||||
{{ui-select id="report-dropdown" content=reports action=(action 'onReportChange') optionValuePath="id" optionLabelPath="name" selection=config.report}}
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Show items since</label>
|
||||
{{input id="branch-since" value=config.branchSince type="text" }}
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Number of items to show</label>
|
||||
{{input id="branch-lines" value=config.branchLines type="number" min="1" step="1" max="100" }}
|
||||
<label>Show items since (default 7 days ago)</label>
|
||||
{{input id="branch-since" value=config.branchSince type="text" }}<br>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
@ -46,10 +32,9 @@
|
|||
|
||||
<div class="pull-left width-45">
|
||||
<div class="input-form">
|
||||
{{#if showCommits}}
|
||||
<div class="input-control">
|
||||
<label>Branches</label>
|
||||
<div class="tip">Select branch</div>
|
||||
<label>Repositories</label>
|
||||
<div class="tip">Select the repositories to show</div>
|
||||
<div class="github-board">
|
||||
{{#each config.lists as |list|}}
|
||||
<div class="github-list" {{action 'onListCheckbox' list.id}}>
|
||||
|
@ -58,42 +43,12 @@
|
|||
{{else}}
|
||||
<i class="material-icons widget-checkbox checkbox-gray github-list-checkbox">check_box_outline_blank</i>
|
||||
{{/if}}
|
||||
<span class="github-list-title">{{list.name}}</span>
|
||||
<span class="github-list-title">{{list.repo}} {{#if list.private}}(private){{/if}}</span>
|
||||
</div>
|
||||
{{/each}}
|
||||
<div class="clearfix" />
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if showLabels}}
|
||||
<div class="input-control">
|
||||
<label>State</label>
|
||||
<div class="tip">Open, Closed or All issues</div>
|
||||
{{ui-select id="issue-state-dropdown" content=states action=(action 'onStateChange') optionValuePath="id" optionLabelPath="name" selection=config.state}}
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Issue numbers</label>
|
||||
<div class="tip">A comma separated list of issue numbers e.g. 42, 1066, 1966 (other selection criteria are ignored)</div>
|
||||
{{input id="github-issues" value=config.issues type="text" }}
|
||||
</div>
|
||||
<div class="input-control">
|
||||
<label>Labels</label>
|
||||
<div class="tip">Select labels - an issue must have all labels to be shown, if no label is selected all issues are shown.</div>
|
||||
<div class="github-board">
|
||||
{{#each config.lists as |list|}}
|
||||
<div class="github-list" {{action 'onLabelCheckbox' list.id}} >
|
||||
{{#if list.included}}
|
||||
<i class="material-icons widget-checkbox checkbox-gray github-list-checkbox">check_box</i>
|
||||
{{else}}
|
||||
<i class="material-icons widget-checkbox checkbox-gray github-list-checkbox">check_box_outline_blank</i>
|
||||
{{/if}}
|
||||
<span class="github-list-title"><span class="github-issue-label" style="background-color:#{{list.color}}">{{list.name}}</span></span>
|
||||
</div>
|
||||
{{/each}}
|
||||
<div class="clearfix" />
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -52,9 +52,84 @@ func listFailed(method string, config githubConfig, client *gogithub.Client, w h
|
|||
|
||||
provider.WriteJSON(w, owners)
|
||||
|
||||
case "repos":
|
||||
/*
|
||||
case "repos":
|
||||
|
||||
var render []githubRepo
|
||||
var render []githubRepo
|
||||
if config.Owner != "" {
|
||||
|
||||
me, _, err := client.Users.Get("")
|
||||
if err != nil {
|
||||
log.Error("github get user details:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
|
||||
var repos []*gogithub.Repository
|
||||
if config.Owner == *me.Login {
|
||||
repos, _, err = client.Repositories.List(config.Owner, nil)
|
||||
} else {
|
||||
opt := &gogithub.RepositoryListByOrgOptions{
|
||||
ListOptions: gogithub.ListOptions{PerPage: 100},
|
||||
}
|
||||
repos, _, err = client.Repositories.ListByOrg(config.Owner, opt)
|
||||
}
|
||||
if err != nil {
|
||||
log.Error("github get user/org repositories:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
for _, vr := range repos {
|
||||
private := ""
|
||||
if *vr.Private {
|
||||
private = " (private)"
|
||||
}
|
||||
render = append(render,
|
||||
githubRepo{
|
||||
Name: config.Owner + "/" + *vr.Name + private,
|
||||
ID: fmt.Sprintf("%s:%s", config.Owner, *vr.Name),
|
||||
Owner: config.Owner,
|
||||
Repo: *vr.Name,
|
||||
Private: *vr.Private,
|
||||
URL: *vr.HTMLURL,
|
||||
})
|
||||
}
|
||||
}
|
||||
render = sortRepos(render)
|
||||
|
||||
provider.WriteJSON(w, render)
|
||||
|
||||
case "branches":
|
||||
|
||||
if config.Owner == "" || config.Repo == "" {
|
||||
provider.WriteJSON(w, []githubBranch{}) // we have nothing to return
|
||||
return
|
||||
}
|
||||
branches, _, err := client.Repositories.ListBranches(config.Owner, config.Repo,
|
||||
&gogithub.ListOptions{PerPage: 100})
|
||||
if err != nil {
|
||||
log.Error("github get branch details:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
render := make([]githubBranch, len(branches))
|
||||
for kc, vb := range branches {
|
||||
render[kc] = githubBranch{
|
||||
Owner: config.Owner,
|
||||
Repo: config.Repo,
|
||||
Name: *vb.Name,
|
||||
ID: fmt.Sprintf("%s:%s:%s", config.Owner, config.Repo, *vb.Name),
|
||||
Included: false,
|
||||
URL: "https://github.com/" + config.Owner + "/" + config.Repo + "/tree/" + *vb.Name,
|
||||
}
|
||||
}
|
||||
|
||||
provider.WriteJSON(w, render)
|
||||
*/
|
||||
|
||||
case "orgrepos":
|
||||
|
||||
var render []githubBranch
|
||||
if config.Owner != "" {
|
||||
|
||||
me, _, err := client.Users.Get("")
|
||||
|
@ -79,76 +154,48 @@ func listFailed(method string, config githubConfig, client *gogithub.Client, w h
|
|||
return
|
||||
}
|
||||
for _, vr := range repos {
|
||||
private := ""
|
||||
if *vr.Private {
|
||||
private = " (private)"
|
||||
}
|
||||
render = append(render,
|
||||
githubRepo{
|
||||
Name: config.Owner + "/" + *vr.Name + private,
|
||||
ID: fmt.Sprintf("%s:%s", config.Owner, *vr.Name),
|
||||
Owner: config.Owner,
|
||||
Repo: *vr.Name,
|
||||
Private: *vr.Private,
|
||||
URL: *vr.HTMLURL,
|
||||
githubBranch{
|
||||
Name: "master",
|
||||
ID: fmt.Sprintf("%s:%s", config.Owner, *vr.Name),
|
||||
Owner: config.Owner,
|
||||
Repo: *vr.Name,
|
||||
Private: *vr.Private,
|
||||
Included: false,
|
||||
URL: *vr.HTMLURL,
|
||||
})
|
||||
}
|
||||
}
|
||||
render = sortRepos(render)
|
||||
render = sortBranches(render)
|
||||
|
||||
provider.WriteJSON(w, render)
|
||||
|
||||
case "branches":
|
||||
/*
|
||||
case "labels":
|
||||
|
||||
if config.Owner == "" || config.Repo == "" {
|
||||
provider.WriteJSON(w, []githubBranch{}) // we have nothing to return
|
||||
return
|
||||
}
|
||||
branches, _, err := client.Repositories.ListBranches(config.Owner, config.Repo,
|
||||
&gogithub.ListOptions{PerPage: 100})
|
||||
if err != nil {
|
||||
log.Error("github get branch details:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
render := make([]githubBranch, len(branches))
|
||||
for kc, vb := range branches {
|
||||
render[kc] = githubBranch{
|
||||
Owner: config.Owner,
|
||||
Repo: config.Repo,
|
||||
Name: *vb.Name,
|
||||
ID: fmt.Sprintf("%s:%s:%s", config.Owner, config.Repo, *vb.Name),
|
||||
Included: false,
|
||||
URL: "https://github.com/" + config.Owner + "/" + config.Repo + "/tree/" + *vb.Name,
|
||||
if config.Owner == "" || config.Repo == "" {
|
||||
provider.WriteJSON(w, []githubBranch{}) // we have nothing to return
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
provider.WriteJSON(w, render)
|
||||
|
||||
case "labels":
|
||||
|
||||
if config.Owner == "" || config.Repo == "" {
|
||||
provider.WriteJSON(w, []githubBranch{}) // we have nothing to return
|
||||
return
|
||||
}
|
||||
labels, _, err := client.Issues.ListLabels(config.Owner, config.Repo,
|
||||
&gogithub.ListOptions{PerPage: 100})
|
||||
if err != nil {
|
||||
log.Error("github get labels:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
render := make([]githubBranch, len(labels))
|
||||
for kc, vb := range labels {
|
||||
render[kc] = githubBranch{
|
||||
Name: *vb.Name,
|
||||
ID: fmt.Sprintf("%s:%s:%s", config.Owner, config.Repo, *vb.Name),
|
||||
Included: false,
|
||||
Color: *vb.Color,
|
||||
labels, _, err := client.Issues.ListLabels(config.Owner, config.Repo,
|
||||
&gogithub.ListOptions{PerPage: 100})
|
||||
if err != nil {
|
||||
log.Error("github get labels:", err)
|
||||
provider.WriteError(w, "github", err)
|
||||
return
|
||||
}
|
||||
render := make([]githubBranch, len(labels))
|
||||
for kc, vb := range labels {
|
||||
render[kc] = githubBranch{
|
||||
Name: *vb.Name,
|
||||
ID: fmt.Sprintf("%s:%s:%s", config.Owner, config.Repo, *vb.Name),
|
||||
Included: false,
|
||||
Color: *vb.Color,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider.WriteJSON(w, render)
|
||||
provider.WriteJSON(w, render)
|
||||
*/
|
||||
|
||||
default:
|
||||
return true // failed to get a list
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
package github
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
"time"
|
||||
|
@ -86,6 +85,7 @@ type githubBranch struct {
|
|||
URL string `json:"url"`
|
||||
Color string `json:"color,omitempty"`
|
||||
Comma bool `json:"comma"`
|
||||
Private bool `json:"private"`
|
||||
}
|
||||
|
||||
type githubLabel struct {
|
||||
|
@ -155,37 +155,44 @@ func (c *githubConfig) Clean() {
|
|||
c.Since = (*c.SincePtr).Format(issuesTimeFormat)
|
||||
|
||||
// TEST DATA INSERTION DEBUG ONLY!
|
||||
debugList := map[string][]string{
|
||||
"community": []string{"master"},
|
||||
"enterprise": []string{"master"},
|
||||
"test-data": []string{"master"},
|
||||
}
|
||||
c.Lists = make([]githubBranch, 0, len(debugList)*3)
|
||||
for repo, branches := range debugList {
|
||||
render := make([]githubBranch, len(branches))
|
||||
for kc, vb := range branches {
|
||||
render[kc] = githubBranch{
|
||||
Owner: "documize",
|
||||
Repo: repo,
|
||||
Name: vb,
|
||||
ID: fmt.Sprintf("%s:%s:%s", "documize", repo, vb),
|
||||
Included: true,
|
||||
URL: "https://github.com/" + "documize" + "/" + repo + "/tree/" + vb,
|
||||
}
|
||||
/*
|
||||
debugList := map[string][]string{
|
||||
"community": []string{"master"},
|
||||
"enterprise": []string{"master"},
|
||||
"test-data": []string{"master"},
|
||||
}
|
||||
c.Lists = append(c.Lists, render...)
|
||||
}
|
||||
c.Owner = "documize"
|
||||
c.Lists = make([]githubBranch, 0, len(debugList)*3)
|
||||
for repo, branches := range debugList {
|
||||
render := make([]githubBranch, len(branches))
|
||||
for kc, vb := range branches {
|
||||
render[kc] = githubBranch{
|
||||
Owner: "documize",
|
||||
Repo: repo,
|
||||
Name: vb,
|
||||
ID: fmt.Sprintf("%s:%s:%s", "documize", repo, vb),
|
||||
Included: true,
|
||||
URL: "https://github.com/" + "documize" + "/" + repo + "/tree/" + vb,
|
||||
}
|
||||
}
|
||||
c.Lists = append(c.Lists, render...)
|
||||
}
|
||||
c.Owner = "documize"
|
||||
*/
|
||||
c.ReportOrder = []string{tagSummaryData, tagMilestonesData, tagIssuesData /*, tagPullRequestData*/, tagCommitsData}
|
||||
c.BranchLines = 100 // overide js default of 30 with maximum allowable in one call
|
||||
|
||||
sort.Stable(branchesToSort(c.Lists)) // get the configured branches in a sensible order for printing
|
||||
|
||||
lastItem := 0
|
||||
for i := range c.Lists {
|
||||
if i != len(c.Lists)-1 {
|
||||
c.Lists[i].Comma = true // put the commas in the right places
|
||||
c.Lists[i].Comma = true
|
||||
if c.Lists[i].Included {
|
||||
lastItem = i
|
||||
}
|
||||
}
|
||||
|
||||
if lastItem < len(c.Lists) {
|
||||
c.Lists[lastItem].Comma = false
|
||||
}
|
||||
}
|
||||
|
||||
type githubCallbackT struct {
|
||||
|
|
|
@ -42,3 +42,10 @@ func sortOwners(in []githubOwner) []githubOwner {
|
|||
sort.Sort(sts)
|
||||
return []githubOwner(sts)
|
||||
}
|
||||
|
||||
// sort branches in order that that should be presented.
|
||||
func sortBranches(in []githubBranch) []githubBranch {
|
||||
sts := branchesToSort(in)
|
||||
sort.Sort(sts)
|
||||
return []githubBranch(sts)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue