refactored saveSurvey method

This commit is contained in:
Jared Tabor
2014-09-22 11:28:54 -04:00
parent 259e48df3e
commit 193accaa84
3 changed files with 101 additions and 69 deletions

View File

@@ -19,6 +19,7 @@ angular.module('SurveyMakerFormDefinition', [])
name: 'survey_maker', //entity or model name in singular form name: 'survey_maker', //entity or model name in singular form
// // well: true, // // well: true,
breadCrumbs: false, breadCrumbs: false,
// twoColumns: true,
// // collapse: true, // // collapse: true,
// collapseTitle: "Properties", // collapseTitle: "Properties",
// collapseMode: 'edit', // collapseMode: 'edit',
@@ -38,26 +39,51 @@ angular.module('SurveyMakerFormDefinition', [])
fields: { fields: {
survey_name: { survey_name: {
label: 'Survey Name',
type: 'text',
addRequired: true,
editRequired: true,
capitalize: false
},
survey_description: {
label: 'Survey Description',
type: 'text',
addRequired: false,
editRequired: false
},
questions: {
type: 'custom', type: 'custom',
control: '<label for="survey"><span class="label-text prepend-asterisk">Questions</span></label>'+ control: '<div class="row"><div class="col-sm-6"><div class="form-group">'+
'<label for="survey_name"><span class="label-text prepend-asterisk">Survey Name</span></label><div>'+
'<input type="text" ng-model="survey_name" name="survey_name" id="survey_maker_survey_name" class="form-control ng-pristine ng-invalid ng-invalid-required" required="">'+
'<div class="error ng-hide" id="survey_maker-survey_name-required-error" ng-show="survey_maker_form.survey_name.$dirty &amp;&amp; survey_maker_form.survey_name.$error.required">A value is required!</div>'+
'<div class="error api-error ng-binding" id="survey_maker-survey_name-api-error" ng-bind="survey_name_api_error"></div>'+
'</div></div></div>'+
'<div class="col-sm-6"><div class="form-group">'+
'<label for="survey_description"><span class="label-text">Survey Description</span></label><div>'+
'<input type="text" ng-model="survey_description" name="survey_description" id="survey_maker_survey_description" class="form-control ng-pristine ng-valid">'+
'<div class="error api-error ng-binding" id="survey_maker-survey_description-api-error" ng-bind="survey_description_api_error"></div>'+
'</div></div></div>'+
'<div class="col-sm-12"><label for="survey"><span class="label-text prepend-asterisk">Questions</span></label>'+
'<div id="survey_maker_question_area"></div><div id="finalized_questions"></div>'+ '<div id="survey_maker_question_area"></div><div id="finalized_questions"></div>'+
'<button style="display:none" type="button" class="btn btn-sm btn-primary" id="add_question_btn" ng-click="addNewQuestion()" aw-tool-tip="Create a new question" data-placement="top" data-original-title="" title="" disabled><i class="fa fa-plus fa-lg"></i> Add Question</button>'+ '<button style="display:none" type="button" class="btn btn-sm btn-primary" id="add_question_btn" ng-click="addNewQuestion()" aw-tool-tip="Create a new question" data-placement="top" data-original-title="" title="" disabled><i class="fa fa-plus fa-lg"></i> Add Question</button>'+
'<div id="new_question"></div>' '<div id="new_question"></div></div></div>'
// label: 'Survey Name',
// type: 'text',
// addRequired: true,
// editRequired: true,
// capitalize: false,
// // column: 1
},
// survey_description: {
// type: 'custom',
// control: '<div class="col-sm-6"><div class="form-group">'+
// '<label for="survey_description"><span class="label-text">Survey Description</span></label><div>'+
// '<input type="text" ng-model="survey_description" name="survey_description" id="survey_maker_survey_description" class="form-control ng-pristine ng-valid">'+
// '<div class="error api-error ng-binding" id="survey_maker-survey_description-api-error" ng-bind="survey_description_api_error"></div>'+
// '</div></div></div></div>'
} // // label: 'Survey Description',
// // type: 'text',
// // addRequired: false,
// // editRequired: false,
// // column: 2
// },
// questions: {
// type: 'custom',
// control: '<label for="survey"><span class="label-text prepend-asterisk">Questions</span></label>'+
// '<div id="survey_maker_question_area"></div><div id="finalized_questions"></div>'+
// '<button style="display:none" type="button" class="btn btn-sm btn-primary" id="add_question_btn" ng-click="addNewQuestion()" aw-tool-tip="Create a new question" data-placement="top" data-original-title="" title="" disabled><i class="fa fa-plus fa-lg"></i> Add Question</button>'+
// '<div id="new_question"></div>'
// }
}, },
buttons: { //for now always generates <button> tags buttons: { //for now always generates <button> tags

View File

@@ -110,27 +110,27 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
}); });
scope.saveSurvey = function() { // scope.saveSurvey = function() {
Wait('start'); // Wait('start');
if(scope.mode==="add"){ // if(scope.mode==="add"){
$('#survey-modal-dialog').dialog('close'); // $('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved'); // scope.$emit('SurveySaved');
} // }
else{ // else{
// var url = data.url+ 'survey_spec/'; // // var url = data.url+ 'survey_spec/';
Rest.setUrl(url); // Rest.setUrl(url);
Rest.post({ name: scope.survey_name, description: scope.survey_description, spec: scope.survey_questions }) // Rest.post({ name: scope.survey_name, description: scope.survey_description, spec: scope.survey_questions })
.success(function () { // .success(function () {
// Wait('stop'); // // Wait('stop');
$('#survey-modal-dialog').dialog('close'); // $('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved'); // scope.$emit('SurveySaved');
}) // })
.error(function (data, status) { // .error(function (data, status) {
ProcessErrors(scope, data, status, form, { hdr: 'Error!', // ProcessErrors(scope, data, status, form, { hdr: 'Error!',
msg: 'Failed to add new survey. Post returned status: ' + status }); // msg: 'Failed to add new survey. Post returned status: ' + status });
}); // });
} // }
}; // };
Wait('start'); Wait('start');
if(scope.mode === 'add'){ if(scope.mode === 'add'){
@@ -222,11 +222,11 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
scope.$emit('surveySaved'); scope.$emit('surveySaved');
}); });
scope.saveSurvey = function() { // scope.saveSurvey = function() {
Wait('start'); // Wait('start');
$('#survey-modal-dialog').dialog('close'); // $('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved'); // scope.$emit('SurveySaved');
}; // };
}; };
}]) }])
@@ -367,11 +367,11 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
}]) }])
/** /**
* Delete a schedule. Prompts user to confirm delete * Delete a survey. Prompts user to confirm delete
* *
* DeleteSchedule({ * DeleteSurvey({
* scope: $scope containing list of schedules * scope: $scope containing list of survey form fields
* id: id of schedule to delete * id: id of job template that survey is attached to
* callback: $scope.$emit label to call when delete is completed * callback: $scope.$emit label to call when delete is completed
* }) * })
* *
@@ -390,6 +390,9 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
scope.removeSurveyDeleted(); scope.removeSurveyDeleted();
} }
scope.$on('SurveyDeleted', function(){ scope.$on('SurveyDeleted', function(){
scope.survey_name = "";
scope.survey_description = "";
scope.survey_questions = [];
Wait('stop'); Wait('stop');
$('#job_templates_delete_survey_btn').hide(); $('#job_templates_delete_survey_btn').hide();
$('#job_templates_edit_survey_btn').hide(); $('#job_templates_edit_survey_btn').hide();
@@ -398,12 +401,8 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
Wait('start'); Wait('start');
// scope.deleteSurvey = function() {
// $location.path($location.path() + '/survey/add');
if(scope.mode==="add"){ if(scope.mode==="add"){
scope.survey_name = "";
scope.survey_description = "";
scope.survey_questions = [];
scope.$emit("SurveyDeleted"); scope.$emit("SurveyDeleted");
} else { } else {
@@ -439,13 +438,15 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
.factory('SurveyControllerInit', ['$location', 'DeleteSurvey', 'EditSurvey', 'AddSurvey', 'GenerateForm', 'SurveyQuestionForm', 'Wait', 'Alert', .factory('SurveyControllerInit', ['$location', 'DeleteSurvey', 'EditSurvey', 'AddSurvey', 'GenerateForm', 'SurveyQuestionForm', 'Wait', 'Alert',
function($location, DeleteSurvey, EditSurvey, AddSurvey, GenerateForm, SurveyQuestionForm, Wait, Alert) { 'GetBasePath', 'Rest', 'ProcessErrors' ,
function($location, DeleteSurvey, EditSurvey, AddSurvey, GenerateForm, SurveyQuestionForm, Wait, Alert, GetBasePath, Rest, ProcessErrors) {
return function(params) { return function(params) {
var scope = params.scope, var scope = params.scope,
parent_scope = params.parent_scope, // parent_scope = params.parent_scope,
id = params.id, id = params.id,
iterator = (params.iterator) ? params.iterator : scope.iterator, url;
base = $location.path().replace(/^\//, '').split('/')[0]; // iterator = (params.iterator) ? params.iterator : scope.iterator,
// base = $location.path().replace(/^\//, '').split('/')[0];
scope.survey_questions = []; scope.survey_questions = [];
scope.answer_types=[ scope.answer_types=[
@@ -548,22 +549,27 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
} }
}; };
scope.saveSurvey = function() {
scope.refreshSchedules = function() { Wait('start');
if (base === 'jobs') { if(scope.mode==="add"){
parent_scope.refreshJobs(); $('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved');
} }
else { else{
scope.search(iterator); url = GetBasePath('job_templates') + id + '/survey_spec/';
Rest.setUrl(url);
Rest.post({ name: scope.survey_name, description: scope.survey_description, spec: scope.survey_questions })
.success(function () {
// Wait('stop');
$('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved');
})
.error(function (data, status) {
ProcessErrors(scope, data, status, { hdr: 'Error!',
msg: 'Failed to add new survey. Post returned status: ' + status });
});
} }
}; };
if (scope.removeSchedulesRefresh) {
scope.removeSchedulesRefresh();
}
scope.$on('SchedulesRefresh', function() {
scope.search(iterator);
});
}; };
}]) }])

View File

@@ -2,6 +2,6 @@
<div ng-cloak id="htmlTemplate"></div> <div ng-cloak id="htmlTemplate"></div>
<div ng-include="'/static/partials/schedule_dialog.html'"></div> <div ng-include="'/static/partials/schedule_dialog.html'"></div>
<div ng-include="'/static/partials/logviewer.html'"></div> <div ng-include="'/static/partials/logviewer.html'"></div>
<div id="survey-modal-dialog"> <div id="survey-modal-dialog"></div>
<!-- <div id="edit-survey-modal-dialog" title="Edit Survey"> --> <!-- <div id="edit-survey-modal-dialog" title="Edit Survey"> -->
</div> </div>