Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 15 additions & 13 deletions lib/resources/js/controllers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,19 +123,21 @@ angular.module('docular.controllers', [
if(!documentationItem) {
$scope.isIndex = true;
} else {
sourceService.fetchSourceFile(documentationItem.file).then(function (resp) {
var fileType = fileType ? documentationItem.file.match(/[A-Za-z0-9]+$/) : null;
if(fileType && fileType.length == 1) {
fileType = fileType[0];
} else {
fileType = null;
}
$scope.source = {
content: resp.data,
fileType: fileType
}
console.log($scope.source);
});
if (documentationItem.showSource) {
sourceService.fetchSourceFile(documentationItem.file).then(function (resp) {
var fileType = fileType ? documentationItem.file.match(/[A-Za-z0-9]+$/) : null;
if(fileType && fileType.length == 1) {
fileType = fileType[0];
} else {
fileType = null;
}
$scope.source = {
content: resp.data,
fileType: fileType
}
console.log($scope.source);
});
}

$scope.includeUrl = 'resources/plugins/' + documentationItem.handler + '/documentationPartial.html';
}
Expand Down
2 changes: 1 addition & 1 deletion lib/resources/templates/index_page.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ <h5 class="module-title">
</ul>
</div>
</div>
<button ng-if="documentationItem && viewing!='source'" id='showSourceButton' ng-click="toggleSource()">Show Source</button>
<button ng-if="documentationItem && documentationItem.showSource && viewing!='source'" id='showSourceButton' ng-click="toggleSource()">Show Source</button>
<button ng-if="documentationItem && viewing=='source'" id='hideSourceButton' ng-click="toggleSource()">Show Docs</button>
<ng-include autoscroll="true" src="includeUrl" ng-if="documentationItem && viewing !='source'"> </ng-include>
<source-viewer ng-if="viewing=='source'" source="source.content" file-type="{{source.fileType}}"></source-viewer>
Expand Down
13 changes: 11 additions & 2 deletions lib/scripts/core/generator.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,11 +125,20 @@ var Generator = Group.extend({
fs.writeFileSync(baseFolder + '/site.json', JSON.stringify(docs, null, 4));
fs.writeFileSync(baseFolder + '/structure.json', JSON.stringify(structure, null, 4));

fse.ensureDirSync(baseFolder + '/sources/');
var bSourcesFolderCreated = false;

for (var i = 0, l = docs.length; i < l; i++) {
if (docs[i].file) {
if (docs[i].file && docs[i].showSource) {

//We only create the sources folder if it's needed by at least one file
if (!bSourcesFolderCreated) {
bSourcesFolderCreated = true;
fse.ensureDirSync(baseFolder + '/sources/');
}

fse.ensureFileSync(baseFolder + '/sources/' + docs[i].file);
fse.copySync(docs[i].file, baseFolder + '/sources/' + docs[i].file);

}
}

Expand Down
19 changes: 14 additions & 5 deletions lib/scripts/core/group.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,18 +75,20 @@ var Group = Class.extend({
return paths.reverse().join('/');
},

setupGroups: function () {
setupGroups: function (parentConfig) {
// The root group isn't called with a parentConfig so we set default value of bShowSource at this point
var _parentConfig = parentConfig || {showSource : false};
var groups = this.option('groups');
var self = this;
this._groups = [];
if(!groups) { return; }
for(var i = 0, l = groups.length; i < l; i++) {
var config = Group.normalizeConfig(groups[i]);
var config = Group.normalizeConfig(groups[i], _parentConfig);
this.emit('ProcessGroupConfig', config);
var group = new Group(config, {
registry: this.registry
});
group.setupGroups();
group.setupGroups(config);
this.events.forEach(function (evt) {
group.on(evt, function () {
self.emit.apply(self, [evt].concat(Array.prototype.slice.apply(arguments)));
Expand Down Expand Up @@ -193,6 +195,7 @@ var Group = Class.extend({
var promises = [];
var self = this;
var files = this.option('files') || [];
var showSource = this.option('showSource');
this.docs = [];

files.forEach(function (fileName) {
Expand All @@ -207,6 +210,7 @@ var Group = Class.extend({
}
docPromise.then(function (docModel) {
docModel.setPath(paths);
docModel.data.showSource = showSource;
self.docs.push(docModel);
docModel.groupId = self.internalGroupId;
self.files[fileName].docs.push(docModel);
Expand All @@ -222,12 +226,13 @@ var Group = Class.extend({

buildRegistry: function () {
this.docs.forEach(function (doc) {
this.registry.addItem(doc.id, doc);
this.registry.addItem(doc.id, doc);
}.bind(this));

return this.runRecursively('buildRegistry');
}
}, {
normalizeConfig: function (groupData) {
normalizeConfig: function (groupData, parentGroupData) {
/*
* Backwards compatibility
*/
Expand All @@ -237,6 +242,10 @@ var Group = Class.extend({
if(!groupData.groupIcon) {
groupData.groupIcon = 'code';
}
// If we don't explicitly set showSource, we inherit from parent
if (typeof(groupData.showSource) !== 'boolean') {
groupData.showSource = parentGroupData.showSource;
}

return groupData;
}
Expand Down