added automatic bower dependency injection
This commit is contained in:
parent
7c8495cd64
commit
fe574995b4
12 changed files with 242 additions and 133 deletions
3
.bowerrc
3
.bowerrc
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"directory": "public/lib"
|
"directory": "public/lib",
|
||||||
|
"analytics": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,8 @@ exports.createSubmission = function(req, res) {
|
||||||
var submission = new FormSubmission(),
|
var submission = new FormSubmission(),
|
||||||
form = req.form,
|
form = req.form,
|
||||||
fdfData,
|
fdfData,
|
||||||
fdfTemplate;
|
fdfTemplate,
|
||||||
|
that = this;
|
||||||
|
|
||||||
submission.form = form;
|
submission.form = form;
|
||||||
submission.admin = req.user;
|
submission.admin = req.user;
|
||||||
|
@ -81,32 +82,54 @@ exports.createSubmission = function(req, res) {
|
||||||
console.log(req.body);
|
console.log(req.body);
|
||||||
// submission.ipAddr = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
|
// submission.ipAddr = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
|
||||||
|
|
||||||
if (form.isGenerated){
|
|
||||||
fdfTemplate = form.convertToFDF();
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
fdfTemplate = pdfFiller.mapForm2PDF(form.convertToFDF(), form.pdfFieldMap);
|
|
||||||
} catch(err){
|
|
||||||
throw new Error(err.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(form.autofillPDFs){
|
if(form.autofillPDFs){
|
||||||
|
if (form.isGenerated){
|
||||||
|
fdfTemplate = form.generateFDFTemplate();
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
fdfTemplate = pdfFiller.mapForm2PDF(form.generateFDFTemplate(), form.pdfFieldMap);
|
||||||
|
} catch(err){
|
||||||
|
res.status(400).send({
|
||||||
|
message: errorHandler.getErrorMessage(err)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
fdfData = pdfFiller.fillFdfTemplate(fdfTemplate, submission.form_fields, null);
|
fdfData = pdfFiller.fillFdfTemplate(fdfTemplate, submission.form_fields, null);
|
||||||
submission.fdfData = fdfData;
|
submission.fdfData = fdfData;
|
||||||
}
|
}
|
||||||
|
|
||||||
submission.save(function(err){
|
async.series([
|
||||||
if (err) {
|
function(callback){
|
||||||
console.error(err);
|
submission.save(function(err){
|
||||||
res.status(400).send({
|
if (err) {
|
||||||
message: errorHandler.getErrorMessage(err)
|
callback(err);
|
||||||
});
|
} else {
|
||||||
} else {
|
callback(null);
|
||||||
console.log('Form Submission CREATED');
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
function(callback){
|
||||||
|
//Add submission to Form.submissionns
|
||||||
|
form.submissions.push(submission);
|
||||||
|
|
||||||
|
form.save(function(err){
|
||||||
|
if (err) {
|
||||||
|
callback(err);
|
||||||
|
} else {
|
||||||
|
callback(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
], function(err, results) {
|
||||||
|
if(err){
|
||||||
|
res.status(400).send({
|
||||||
|
message: errorHandler.getErrorMessage(err)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
console.log(results);
|
||||||
|
console.log(that.form_fields);
|
||||||
res.status(200).send('Form submission successfully saved');
|
res.status(200).send('Form submission successfully saved');
|
||||||
}
|
});
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,17 +138,21 @@ exports.createSubmission = function(req, res) {
|
||||||
exports.listSubmissions = function(req, res) {
|
exports.listSubmissions = function(req, res) {
|
||||||
var _form = req.form;
|
var _form = req.form;
|
||||||
|
|
||||||
FormSubmission.find({ form: req.form }).populate('admin', 'form').exec(function(err, submissions) {
|
if(_form.submissions.length){
|
||||||
if (err) {
|
res.json(_form.submissions);
|
||||||
console.log(err);
|
}else{
|
||||||
res.status(500).send({
|
FormSubmission.find({ form: req.form }).populate('admin', 'form').exec(function(err, submissions) {
|
||||||
message: errorHandler.getErrorMessage(err)
|
if (err) {
|
||||||
});
|
console.log(err);
|
||||||
} else {
|
res.status(400).send({
|
||||||
console.log('hello');
|
message: errorHandler.getErrorMessage(err)
|
||||||
res.json(submissions);
|
});
|
||||||
}
|
} else {
|
||||||
});
|
console.log('retrieved submissions for form');
|
||||||
|
res.json(submissions);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -188,7 +215,7 @@ exports.delete = function(req, res) {
|
||||||
Form.remove({_id: form._id}, function(err) {
|
Form.remove({_id: form._id}, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
res.status(500).send({
|
res.status(500).send({
|
||||||
message: err.message
|
message: errorHandler.getErrorMessage(err)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log('Form successfully deleted');
|
console.log('Form successfully deleted');
|
||||||
|
|
|
@ -172,50 +172,49 @@ FormSchema.pre('save', function (next) {
|
||||||
console.log('autogenerating form');
|
console.log('autogenerating form');
|
||||||
console.log(that.pdf.path);
|
console.log(that.pdf.path);
|
||||||
|
|
||||||
try {
|
pdfFiller.generateFieldJson(that.pdf.path, function(err, _form_fields){
|
||||||
pdfFiller.generateFieldJson(that.pdf.path, function(_form_fields){
|
if(err){
|
||||||
|
next( new Error(err.message), null);
|
||||||
|
}
|
||||||
|
|
||||||
//Map PDF field names to FormField field names
|
//Map PDF field names to FormField field names
|
||||||
for(var i = 0; i < _form_fields.length; i++){
|
for(var i = 0; i < _form_fields.length; i++){
|
||||||
var field = _form_fields[i];
|
var field = _form_fields[i];
|
||||||
|
|
||||||
//Convert types from FDF to 'FormField' types
|
//Convert types from FDF to 'FormField' types
|
||||||
if(_typeConvMap[ field.fieldType+'' ]){
|
if(_typeConvMap[ field.fieldType+'' ]){
|
||||||
field.fieldType = _typeConvMap[ field.fieldType+'' ];
|
field.fieldType = _typeConvMap[ field.fieldType+'' ];
|
||||||
}
|
|
||||||
|
|
||||||
field.fieldValue = '';
|
|
||||||
field.created = Date.now();
|
|
||||||
field.required = true;
|
|
||||||
field.disabled = false;
|
|
||||||
|
|
||||||
// field = new Field(field);
|
|
||||||
// field.save(function(err) {
|
|
||||||
// if (err) {
|
|
||||||
// console.error(err.message);
|
|
||||||
// throw new Error(err.message);
|
|
||||||
// });
|
|
||||||
// } else {
|
|
||||||
// _form_fields[i] = that;
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
_form_fields[i] = field;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('NEW FORM_FIELDS: ');
|
field.fieldValue = '';
|
||||||
console.log(_form_fields);
|
field.created = Date.now();
|
||||||
|
field.required = true;
|
||||||
|
field.disabled = false;
|
||||||
|
|
||||||
console.log('\n\nOLD FORM_FIELDS: ');
|
// field = new Field(field);
|
||||||
console.log(that.form_fields);
|
// field.save(function(err) {
|
||||||
|
// if (err) {
|
||||||
|
// console.error(err.message);
|
||||||
|
// throw new Error(err.message);
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
|
// _form_fields[i] = that;
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
_form_fields[i] = field;
|
||||||
|
}
|
||||||
|
|
||||||
that.form_fields = _form_fields;
|
console.log('NEW FORM_FIELDS: ');
|
||||||
callback();
|
console.log(_form_fields);
|
||||||
});
|
|
||||||
} catch(err){
|
console.log('\n\nOLD FORM_FIELDS: ');
|
||||||
next( new Error(err.message) );
|
console.log(that.form_fields);
|
||||||
}
|
|
||||||
|
that.form_fields = _form_fields;
|
||||||
|
callback(null, 'pdfFiller');
|
||||||
|
});
|
||||||
}
|
}
|
||||||
callback(null,null);
|
callback(null, that);
|
||||||
}
|
}
|
||||||
], function(err, results) {
|
], function(err, results) {
|
||||||
if(err){
|
if(err){
|
||||||
|
@ -223,10 +222,13 @@ FormSchema.pre('save', function (next) {
|
||||||
message: err.message
|
message: err.message
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
next();
|
console.log(results);
|
||||||
|
console.log(that.form_fields);
|
||||||
|
next(results[1]);
|
||||||
});
|
});
|
||||||
|
}else{
|
||||||
|
next();
|
||||||
}
|
}
|
||||||
next();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//Autogenerate Form_fields from PDF if 'isGenerated' flag is set
|
//Autogenerate Form_fields from PDF if 'isGenerated' flag is set
|
||||||
|
@ -297,7 +299,28 @@ FormSchema.pre('save', function (next) {
|
||||||
// next();
|
// next();
|
||||||
// });
|
// });
|
||||||
|
|
||||||
FormSchema.methods.convertToFDF = function (cb) {
|
// FormSchema.methods.generateSubmissionsCSV = function (cb) {
|
||||||
|
// if(this.submissions.length){
|
||||||
|
// submissions = this.submissions
|
||||||
|
// }else{
|
||||||
|
// submissions =
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// _values.forEach(function(val){
|
||||||
|
// if(val === true){
|
||||||
|
// val = 'Yes';
|
||||||
|
// }else if(val === false) {
|
||||||
|
// val = 'Off';
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
// var jsonObj = _.zipObject(_keys, _values);
|
||||||
|
|
||||||
|
// return jsonObj;
|
||||||
|
// };
|
||||||
|
|
||||||
|
FormSchema.methods.generateFDFTemplate = function (cb) {
|
||||||
var _keys = _.pluck(this.form_fields, 'title'),
|
var _keys = _.pluck(this.form_fields, 'title'),
|
||||||
_values = _.pluck(this.form_fields, 'fieldValue');
|
_values = _.pluck(this.form_fields, 'fieldValue');
|
||||||
|
|
||||||
|
@ -314,4 +337,5 @@ FormSchema.methods.convertToFDF = function (cb) {
|
||||||
return jsonObj;
|
return jsonObj;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
mongoose.model('Form', FormSchema);
|
mongoose.model('Form', FormSchema);
|
||||||
|
|
|
@ -81,9 +81,10 @@ FormSubmissionSchema.pre('save', function (next) {
|
||||||
// debugger;
|
// debugger;
|
||||||
var fdfData, dest_filename, dest_path;
|
var fdfData, dest_filename, dest_path;
|
||||||
var that = this;
|
var that = this;
|
||||||
|
var _form = this.form;
|
||||||
|
|
||||||
Form.findById(that.form, function(err, _form){
|
// Form.findById(that.form, function(err, _form){
|
||||||
if(err) next( new Error(err.mesasge) );
|
// if(err) next( new Error(err.mesasge) );
|
||||||
|
|
||||||
that.title = _form.title;
|
that.title = _form.title;
|
||||||
// console.log(_form);
|
// console.log(_form);
|
||||||
|
@ -96,7 +97,7 @@ FormSubmissionSchema.pre('save', function (next) {
|
||||||
this.pdfFilePath = dest_path;
|
this.pdfFilePath = dest_path;
|
||||||
|
|
||||||
|
|
||||||
pdfFiller.fillForm(_form.pdf.path, dest_path, this.fdfData, function(err){
|
pdfFiller.fillForm(_form.pdf.path, dest_path, that.fdfData, function(err){
|
||||||
console.log('fdfData: \n');
|
console.log('fdfData: \n');
|
||||||
console.log(that.fdfData);
|
console.log(that.fdfData);
|
||||||
|
|
||||||
|
@ -114,7 +115,7 @@ FormSubmissionSchema.pre('save', function (next) {
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
// });
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -34,11 +34,17 @@
|
||||||
<!-- Fav Icon -->
|
<!-- Fav Icon -->
|
||||||
<link href="/modules/core/img/brand/favicon.ico" rel="shortcut icon" type="image/x-icon">
|
<link href="/modules/core/img/brand/favicon.ico" rel="shortcut icon" type="image/x-icon">
|
||||||
|
|
||||||
|
<!--Bower CSS dependencies-->
|
||||||
|
{% for bowerCssFile in bowerCssFiles %}
|
||||||
|
<link rel="stylesheet" href="{{bowerCssFile}}">
|
||||||
|
{% endfor %}
|
||||||
|
<!-- end Bower CSS dependencies-->
|
||||||
|
|
||||||
<!--Application CSS Files-->
|
<!--Application CSS Files-->
|
||||||
{% for cssFile in cssFiles %}
|
{% for cssFile in cssFiles %}
|
||||||
<link rel="stylesheet" href="{{cssFile}}">
|
<link rel="stylesheet" href="{{cssFile}}">
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
|
<!-- end Application CSS Files-->
|
||||||
|
|
||||||
|
|
||||||
<!-- HTML5 Shim -->
|
<!-- HTML5 Shim -->
|
||||||
|
@ -60,25 +66,31 @@
|
||||||
var user = {{ user | json | safe }};
|
var user = {{ user | json | safe }};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!--Bower JS dependencies-->
|
||||||
|
{% for bowerJSFile in bowerJSFiles %}
|
||||||
|
<script type="text/javascript" src="{{bowerJSFile}}"></script>
|
||||||
|
{% endfor %}
|
||||||
|
<!-- end Bower JS dependencies-->
|
||||||
|
|
||||||
<!--Application JavaScript Files-->
|
<!--Application JavaScript Files-->
|
||||||
{% for jsFile in jsFiles %}
|
{% for jsFile in jsFiles %}
|
||||||
<script type="text/javascript" src="{{jsFile}}"></script>
|
<script type="text/javascript" src="{{jsFile}}"></script>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<!-- end Application CSS dependencies-->
|
||||||
|
|
||||||
{% if process.env.NODE_ENV === 'development' %}
|
{% if process.env.NODE_ENV === 'development' %}
|
||||||
<!--Livereload script rendered -->
|
<!--Livereload script rendered -->
|
||||||
<script type="text/javascript" src="http://{{request.hostname}}:35729/livereload.js"></script>
|
<script type="text/javascript" src="http://{{request.hostname}}:35729/livereload.js"></script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
<!-- [if lt IE 9]>
|
||||||
<section class="browsehappy jumbotron hide">
|
<section class="browsehappy jumbotron hide">
|
||||||
<h1>Hello there!</h1>
|
<h1>Hello there!</h1>
|
||||||
<p>You are using an old browser which we unfortunately do not support.</p>
|
<p>You are using an old browser which we unfortunately do not support.</p>
|
||||||
<p>Please <a href="http://browsehappy.com/">click here</a> to update your browser before using the website.</p>
|
<p>Please <a href="http://browsehappy.com/">click here</a> to update your browser before using the website.</p>
|
||||||
<p><a href="http://browsehappy.com" class="btn btn-primary btn-lg" role="button">Yes, upgrade my browser!</a></p>
|
<p><a href="http://browsehappy.com" class="btn btn-primary btn-lg" role="button">Yes, upgrade my browser!</a></p>
|
||||||
</section>
|
</section>
|
||||||
<![endif]-->
|
<![endif] -->
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
20
bower.json
20
bower.json
|
@ -1,7 +1,14 @@
|
||||||
{
|
{
|
||||||
"name": "meanjs",
|
"name": "MedForm",
|
||||||
"version": "0.3.2",
|
"description": "PDF generated form builder",
|
||||||
"description": "Fullstack JavaScript with MongoDB, Express, AngularJS, and Node.js.",
|
"version": "0.0.2",
|
||||||
|
"homepage": "https://github.com/whitef0x0/medform",
|
||||||
|
"authors": [
|
||||||
|
"David Baldwynn <polydaic@gmail.com>"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"private": true,
|
||||||
|
"appPath": "public/modules",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bootstrap": "~3",
|
"bootstrap": "~3",
|
||||||
"angular": "~1.2",
|
"angular": "~1.2",
|
||||||
|
@ -12,11 +19,14 @@
|
||||||
"angular-ui-utils": "~0.1.1",
|
"angular-ui-utils": "~0.1.1",
|
||||||
"angular-ui-router": "~0.2.11",
|
"angular-ui-router": "~0.2.11",
|
||||||
"angular-strap": "~2.2.1",
|
"angular-strap": "~2.2.1",
|
||||||
"angular-permission": "~0.3.0"
|
"angular-permission": "~0.3.0",
|
||||||
|
"restangular": "~1.5.1",
|
||||||
|
"fontawesome": "~4.3.0",
|
||||||
|
"ng-file-upload": "~5.0.9"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"angular": "^1.2.21",
|
"angular": "^1.2.21",
|
||||||
"angular-resource": "~1.2",
|
"angular-resource": "~1.2",
|
||||||
"ng-file-upload": "~4.1.0"
|
"ng-file-upload": "~5.0.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
* Module dependencies.
|
* Module dependencies.
|
||||||
*/
|
*/
|
||||||
var _ = require('lodash'),
|
var _ = require('lodash'),
|
||||||
glob = require('glob');
|
glob = require('glob'),
|
||||||
|
bowerFiles = require('main-bower-files'),
|
||||||
|
path = require('path');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load app configurations
|
* Load app configurations
|
||||||
|
@ -53,11 +55,30 @@ module.exports.getGlobbedFiles = function(globPatterns, removeRoot) {
|
||||||
return output;
|
return output;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
module.exports.removeRootDir = function(files, root) {
|
||||||
|
return files.map(function(file) {
|
||||||
|
return file.replace(path.join(process.cwd(),root), '');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the app's bower dependencies
|
||||||
|
*/
|
||||||
|
module.exports.getBowerJSAssets = function() {
|
||||||
|
return this.removeRootDir(bowerFiles('**/**.js'), 'public/');
|
||||||
|
};
|
||||||
|
module.exports.getBowerCSSAssets = function() {
|
||||||
|
return this.removeRootDir(bowerFiles('**/**.css'), 'public/');
|
||||||
|
};
|
||||||
|
module.exports.getBowerOtherAssets = function() {
|
||||||
|
return this.removeRootDir(bowerFiles('**/!(*.js|*.css|*.less)'), 'public/');
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the modules JavaScript files
|
* Get the modules JavaScript files
|
||||||
*/
|
*/
|
||||||
module.exports.getJavaScriptAssets = function(includeTests) {
|
module.exports.getJavaScriptAssets = function(includeTests) {
|
||||||
var output = this.getGlobbedFiles(this.assets.lib.js.concat(this.assets.js), 'public/');
|
var output = this.getGlobbedFiles(this.assets.js, 'public/');
|
||||||
|
|
||||||
// To include tests
|
// To include tests
|
||||||
if (includeTests) {
|
if (includeTests) {
|
||||||
|
@ -71,6 +92,6 @@ module.exports.getJavaScriptAssets = function(includeTests) {
|
||||||
* Get the modules CSS files
|
* Get the modules CSS files
|
||||||
*/
|
*/
|
||||||
module.exports.getCSSAssets = function() {
|
module.exports.getCSSAssets = function() {
|
||||||
var output = this.getGlobbedFiles(this.assets.lib.css.concat(this.assets.css), 'public/');
|
var output = this.getGlobbedFiles(this.assets.css, 'public/');
|
||||||
return output;
|
return output;
|
||||||
};
|
};
|
||||||
|
|
34
config/env/all.js
vendored
34
config/env/all.js
vendored
|
@ -52,23 +52,23 @@ module.exports = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
assets: {
|
assets: {
|
||||||
lib: {
|
// lib: {
|
||||||
css: [
|
// css: [
|
||||||
'public/lib/bootstrap/dist/css/bootstrap.css',
|
// 'public/lib/bootstrap/dist/css/bootstrap.css',
|
||||||
'public/lib/bootstrap/dist/css/bootstrap-theme.css',
|
// 'public/lib/bootstrap/dist/css/bootstrap-theme.css',
|
||||||
],
|
// ],
|
||||||
js: [
|
// js: [
|
||||||
'public/lib/angular/angular.js',
|
// 'public/lib/angular/angular.js',
|
||||||
'public/lib/angular-permission/dist/angular-permission.js',
|
// 'public/lib/angular-permission/dist/angular-permission.js',
|
||||||
'public/lib/angular-resource/angular-resource.js',
|
// 'public/lib/angular-resource/angular-resource.js',
|
||||||
'public/lib/angular-animate/angular-animate.js',
|
// 'public/lib/angular-animate/angular-animate.js',
|
||||||
'public/lib/angular-ui-router/release/angular-ui-router.js',
|
// 'public/lib/angular-ui-router/release/angular-ui-router.js',
|
||||||
'public/lib/angular-ui-utils/ui-utils.js',
|
// 'public/lib/angular-ui-utils/ui-utils.js',
|
||||||
'public/lib/angular-bootstrap/ui-bootstrap-tpls.js',
|
// 'public/lib/angular-bootstrap/ui-bootstrap-tpls.js',
|
||||||
'public/lib/ng-file-upload/ng-file-upload-all.js',
|
// 'public/lib/ng-file-upload/ng-file-upload-all.js',
|
||||||
'public/lib/angular-cookies/angular-cookies.js',
|
// 'public/lib/angular-cookies/angular-cookies.js',
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
css: [
|
css: [
|
||||||
'public/modules/**/css/*.css'
|
'public/modules/**/css/*.css'
|
||||||
],
|
],
|
||||||
|
|
|
@ -39,6 +39,11 @@ module.exports = function(db) {
|
||||||
app.locals.description = config.app.description;
|
app.locals.description = config.app.description;
|
||||||
app.locals.keywords = config.app.keywords;
|
app.locals.keywords = config.app.keywords;
|
||||||
app.locals.facebookAppId = config.facebook.clientID;
|
app.locals.facebookAppId = config.facebook.clientID;
|
||||||
|
|
||||||
|
app.locals.bowerJSFiles = config.getBowerJSAssets();
|
||||||
|
app.locals.bowerCssFiles = config.getBowerCSSAssets();
|
||||||
|
app.locals.bowerOtherFiles = config.getBowerOtherAssets();
|
||||||
|
|
||||||
app.locals.jsFiles = config.getJavaScriptAssets();
|
app.locals.jsFiles = config.getJavaScriptAssets();
|
||||||
app.locals.cssFiles = config.getCSSAssets();
|
app.locals.cssFiles = config.getCSSAssets();
|
||||||
|
|
||||||
|
|
25
gruntfile.js
25
gruntfile.js
|
@ -18,39 +18,44 @@ module.exports = function(grunt) {
|
||||||
serverViews: {
|
serverViews: {
|
||||||
files: watchFiles.serverViews,
|
files: watchFiles.serverViews,
|
||||||
options: {
|
options: {
|
||||||
livereload: true
|
livereload: true,
|
||||||
|
spawn: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
serverJS: {
|
serverJS: {
|
||||||
files: watchFiles.serverJS,
|
files: watchFiles.serverJS,
|
||||||
tasks: ['jshint'],
|
tasks: ['newer:jshint'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true
|
livereload: true,
|
||||||
|
spawn: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clientViews: {
|
clientViews: {
|
||||||
files: watchFiles.clientViews,
|
files: watchFiles.clientViews,
|
||||||
options: {
|
options: {
|
||||||
livereload: true
|
livereload: true,
|
||||||
|
spawn: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clientJS: {
|
clientJS: {
|
||||||
files: watchFiles.clientJS,
|
files: watchFiles.clientJS,
|
||||||
tasks: ['jshint'],
|
tasks: ['newer:jshint'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true
|
livereload: true,
|
||||||
|
spawn: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clientCSS: {
|
clientCSS: {
|
||||||
files: watchFiles.clientCSS,
|
files: watchFiles.clientCSS,
|
||||||
tasks: ['csslint'],
|
tasks: ['newer:csslint'],
|
||||||
options: {
|
options: {
|
||||||
livereload: true
|
livereload: true,
|
||||||
|
spawn: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mochaTests: {
|
mochaTests: {
|
||||||
files: watchFiles.mochaTests,
|
files: watchFiles.mochaTests,
|
||||||
tasks: ['test:server'],
|
tasks: ['newer:test:server'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
jshint: {
|
jshint: {
|
||||||
|
@ -171,7 +176,7 @@ module.exports = function(grunt) {
|
||||||
grunt.registerTask('secure', ['env:secure', 'lint', 'concurrent:default']);
|
grunt.registerTask('secure', ['env:secure', 'lint', 'concurrent:default']);
|
||||||
|
|
||||||
// Lint task(s).
|
// Lint task(s).
|
||||||
grunt.registerTask('lint', ['jshint', 'csslint']);
|
grunt.registerTask('lint', ['newer:jshint', 'newer:csslint']);
|
||||||
|
|
||||||
// Build task(s).
|
// Build task(s).
|
||||||
grunt.registerTask('build', ['lint', 'loadConfig', 'ngAnnotate', 'uglify', 'cssmin']);
|
grunt.registerTask('build', ['lint', 'loadConfig', 'ngAnnotate', 'uglify', 'cssmin']);
|
||||||
|
|
34
package.json
34
package.json
|
@ -51,26 +51,28 @@
|
||||||
"then-fs": "^2.0.0"
|
"then-fs": "^2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"supertest": "~0.14.0",
|
|
||||||
"should": "~4.1.0",
|
|
||||||
"grunt-env": "~0.4.1",
|
|
||||||
"grunt-node-inspector": "~0.1.3",
|
|
||||||
"grunt-contrib-watch": "~0.6.1",
|
|
||||||
"grunt-contrib-jshint": "~0.10.0",
|
|
||||||
"grunt-contrib-csslint": "^0.3.1",
|
|
||||||
"grunt-ng-annotate": "~0.4.0",
|
|
||||||
"grunt-contrib-uglify": "~0.6.0",
|
|
||||||
"grunt-contrib-cssmin": "~0.10.0",
|
|
||||||
"grunt-nodemon": "~0.3.0",
|
|
||||||
"grunt-concurrent": "~1.0.0",
|
"grunt-concurrent": "~1.0.0",
|
||||||
"grunt-mocha-test": "~0.12.1",
|
"grunt-contrib-csslint": "^0.3.1",
|
||||||
|
"grunt-contrib-cssmin": "~0.10.0",
|
||||||
|
"grunt-contrib-jshint": "~0.10.0",
|
||||||
|
"grunt-contrib-uglify": "~0.6.0",
|
||||||
|
"grunt-contrib-watch": "~0.6.1",
|
||||||
|
"grunt-env": "~0.4.1",
|
||||||
"grunt-karma": "~0.9.0",
|
"grunt-karma": "~0.9.0",
|
||||||
"load-grunt-tasks": "~1.0.0",
|
"grunt-mocha-test": "~0.12.1",
|
||||||
|
"grunt-newer": "^1.1.1",
|
||||||
|
"grunt-ng-annotate": "~0.4.0",
|
||||||
|
"grunt-node-inspector": "~0.1.3",
|
||||||
|
"grunt-nodemon": "~0.3.0",
|
||||||
"karma": "~0.12.0",
|
"karma": "~0.12.0",
|
||||||
"karma-jasmine": "~0.2.1",
|
|
||||||
"karma-coverage": "~0.2.0",
|
|
||||||
"karma-chrome-launcher": "~0.1.2",
|
"karma-chrome-launcher": "~0.1.2",
|
||||||
|
"karma-coverage": "~0.2.0",
|
||||||
"karma-firefox-launcher": "~0.1.3",
|
"karma-firefox-launcher": "~0.1.3",
|
||||||
"karma-phantomjs-launcher": "~0.1.2"
|
"karma-jasmine": "~0.2.1",
|
||||||
|
"karma-phantomjs-launcher": "~0.1.2",
|
||||||
|
"load-grunt-tasks": "~1.0.0",
|
||||||
|
"main-bower-files": "^2.8.2",
|
||||||
|
"should": "~4.1.0",
|
||||||
|
"supertest": "~0.14.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@ angular.module('forms').controller('ViewFormController', ['$scope', '$stateParam
|
||||||
// Return all user's Forms
|
// Return all user's Forms
|
||||||
$scope.findAll = function() {
|
$scope.findAll = function() {
|
||||||
$scope.forms = Forms.query();
|
$scope.forms = Forms.query();
|
||||||
|
console.log($scope.forms);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Find a specific Form
|
// Find a specific Form
|
||||||
|
|
Loading…
Reference in a new issue