Skip to content

Commit

Permalink
#47 add support for listing branches for projects with commit hash.
Browse files Browse the repository at this point in the history
  • Loading branch information
Zsolt Lattmann committed Apr 9, 2015
1 parent b358936 commit f0c869f
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 18 deletions.
85 changes: 74 additions & 11 deletions src/client/js/Dialogs/CreateFromSeed/CreateFromSeedDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ define(['js/Loader/LoaderCircles', 'text!./templates/CreateFromSeed.html'], func
this.seedProjectName = WebGMEGlobal.gmeConfig.seedProjects.defaultProject;
this.seedProjectType = 'file';
this.seedProjectBranch = 'master';
this.seedCommitHash = null;

this._logger.debug('Create form seed ctor');
};
Expand Down Expand Up @@ -49,8 +50,12 @@ define(['js/Loader/LoaderCircles', 'text!./templates/CreateFromSeed.html'], func
this._optGroupFile = this._dialog.find('optgroup.file');
this._optGroupDb = this._dialog.find('optgroup.db');

this._option.children().remove();

this._optGroupFile.children().remove();
this._option.append(this._optGroupFile);
this._optGroupDb.children().remove();
this._option.append(this._optGroupDb);

this._loader = new LoaderCircles({containerElement: this._dialog});

Expand All @@ -63,10 +68,15 @@ define(['js/Loader/LoaderCircles', 'text!./templates/CreateFromSeed.html'], func

if (self._fnCallback) {
self._logger.debug(self._option.val());
self.seedProjectType = self._option.val().substr(0, self._option.val().indexOf(':'));
self.seedProjectName = self._option.val().substr(self._option.val().indexOf(':') + 1);
self.seedProjectType = self._option.val().slice(0, self._option.val().indexOf(':'));
self.seedProjectName = self._option.val().slice(self._option.val().indexOf(':') + 1);

if (self.seedProjectType === 'db') {
self.seedProjectName = self._option.val().slice(self._option.val().indexOf(':') + 1, self._option.val().indexOf('#'));
self.seedCommitHash = self._option.val().slice(self._option.val().indexOf('#'));
}

self._fnCallback(self.seedProjectType, self.seedProjectName, self.seedProjectBranch);
self._fnCallback(self.seedProjectType, self.seedProjectName, self.seedProjectBranch, self.seedCommitHash);
}
});

Expand All @@ -92,16 +102,69 @@ define(['js/Loader/LoaderCircles', 'text!./templates/CreateFromSeed.html'], func
}
}

for (i = 0; i < data.db.length; i += 1) {
self._optGroupDb.append($('<option>', {text: data.db[i] + ' (master)', value: 'db:' + data.db[i]}));
if (self.seedProjectName === data.db[i]) {
defaultOption = 'db:' + data.db[i];
self._client.getFullProjectsInfoAsync(function (err, projectList) {
var projectId,
branchId,
proojectGroup;

if (err) {
self.logger.error(err);
return;
}
}

if (defaultOption) {
self._option.val(defaultOption);
}
for (i = 0; i < data.db.length; i += 1) {
projectId = data.db[i];
if (projectList.hasOwnProperty(projectId)) {
if (Object.keys(projectList[projectId].branches).length === 0) {

} else if (Object.keys(projectList[projectId].branches).length === 1) {
branchId = Object.keys(projectList[projectId].branches)[0];
self._optGroupDb.append($('<option>', {
text: data.db[i] + ' (' + branchId + ' ' + projectList[projectId].branches[branchId].slice(0, 8) + ')',
value: 'db:' + data.db[i] + projectList[projectId].branches[branchId]
}
));
if (self.seedProjectName === data.db[i]) {
defaultOption = 'db:' + data.db[i] + projectList[projectId].branches[branchId];
}
} else {
// more than one branches
proojectGroup = $('<optgroup>', {
label: data.db[i]
}
);
self._option.append(proojectGroup);

for (branchId in projectList[projectId].branches) {
if ( projectList[projectId].branches.hasOwnProperty(branchId)) {
proojectGroup.append($('<option>', {
text: data.db[i] + ' (' + branchId + ' ' +
projectList[projectId].branches[branchId].slice(0, 8) + ')',
value: 'db:' + data.db[i] + projectList[projectId].branches[branchId]
}
));
}
}

if (projectList[projectId].branches.hasOwnProperty('master')) {
branchId = 'master';
} else {
branchId = Object.keys(projectList[projectId].branches)[0];
}

if (self.seedProjectName === data.db[i]) {
defaultOption = 'db:' + data.db[i] + branchId;
}
}
} else {
self._logger.error('Project does not exist: ' + projectId);
}
}

if (defaultOption) {
self._option.val(defaultOption);
}
});
}
self._loader.stop();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>Create project from seed</h3>
<h3>Create a new project from seed</h3>
</div>
<div class="modal-body">
<form class="form-horizontal" role="form">
Expand All @@ -12,7 +12,7 @@ <h3>Create project from seed</h3>
<optgroup class="file" label="Template File">

</optgroup>
<optgroup class="db" label="Existing Project">
<optgroup class="db" label="Existing Projects with a single branch">

</optgroup>
</select>
Expand Down
9 changes: 5 additions & 4 deletions src/client/js/Dialogs/Projects/ProjectsDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,9 @@ define( [
self._btnNewProjectImport.disable( true );
self._dialog.modal( 'hide' );
var d = new CreateFromSeedDialog(self._client, self._logger.fork('CreateFromSeedDialog'));
d.show( function ( seedType, seedName, seedBranchName ) {
d.show( function ( seedType, seedName, seedBranchName, seedCommitHash ) {
if (seedType && seedName) {
self._createProjectFromSeed(val, seedType, seedName, seedBranchName);
self._createProjectFromSeed(val, seedType, seedName, seedBranchName, seedCommitHash);
} else {
self._dialog.modal('show');
}
Expand Down Expand Up @@ -518,14 +518,15 @@ define( [
} );
};

ProjectsDialog.prototype._createProjectFromSeed = function ( projectName, type, seedName, branchName ) {
ProjectsDialog.prototype._createProjectFromSeed = function ( projectName, type, seedName, branchName, commitHash ) {
var _client = this._client,
_logger = this._logger,
parameters = {
type: type,
projectName: projectName,
seedName: seedName,
branchName: branchName
branchName: branchName,
commitHash: commitHash
},
_loader = new LoaderCircles( {"containerElement": $( 'body' )} );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ <h3>Projects</h3>
<div class="modal-footer">
<div class="panel-buttons">
<button class="btn btn-default pull-left btn-refresh" title="Reload project list..." style="position: relative;"><i class="glyphicon glyphicon-refresh"></i></button>
<button class="btn btn-default pull-left btn-create-new">Create empty...</button>
<button class="btn btn-default pull-left btn-create-new">Create new...</button>
<button class="btn btn-default pull-left btn-import-file">Create from file...</button>
<button class="btn btn-primary btn-open">Open</button>
<button class="btn btn-danger btn-delete">Delete</button>
Expand Down

0 comments on commit f0c869f

Please sign in to comment.