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
// // well: true,
breadCrumbs: false,
// twoColumns: true,
// // collapse: true,
// collapseTitle: "Properties",
// collapseMode: 'edit',
@ -38,26 +39,51 @@ angular.module('SurveyMakerFormDefinition', [])
fields: {
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',
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>'+
'<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

View File

@ -110,27 +110,27 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
});
scope.saveSurvey = function() {
Wait('start');
if(scope.mode==="add"){
$('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved');
}
else{
// var url = data.url+ '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, form, { hdr: 'Error!',
msg: 'Failed to add new survey. Post returned status: ' + status });
});
}
};
// scope.saveSurvey = function() {
// Wait('start');
// if(scope.mode==="add"){
// $('#survey-modal-dialog').dialog('close');
// scope.$emit('SurveySaved');
// }
// else{
// // var url = data.url+ '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, form, { hdr: 'Error!',
// msg: 'Failed to add new survey. Post returned status: ' + status });
// });
// }
// };
Wait('start');
if(scope.mode === 'add'){
@ -222,11 +222,11 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
scope.$emit('surveySaved');
});
scope.saveSurvey = function() {
Wait('start');
$('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved');
};
// scope.saveSurvey = function() {
// Wait('start');
// $('#survey-modal-dialog').dialog('close');
// 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({
* scope: $scope containing list of schedules
* id: id of schedule to delete
* DeleteSurvey({
* scope: $scope containing list of survey form fields
* id: id of job template that survey is attached to
* callback: $scope.$emit label to call when delete is completed
* })
*
@ -390,6 +390,9 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
scope.removeSurveyDeleted();
}
scope.$on('SurveyDeleted', function(){
scope.survey_name = "";
scope.survey_description = "";
scope.survey_questions = [];
Wait('stop');
$('#job_templates_delete_survey_btn').hide();
$('#job_templates_edit_survey_btn').hide();
@ -398,12 +401,8 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
Wait('start');
// scope.deleteSurvey = function() {
// $location.path($location.path() + '/survey/add');
if(scope.mode==="add"){
scope.survey_name = "";
scope.survey_description = "";
scope.survey_questions = [];
scope.$emit("SurveyDeleted");
} else {
@ -439,13 +438,15 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
.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) {
var scope = params.scope,
parent_scope = params.parent_scope,
// parent_scope = params.parent_scope,
id = params.id,
iterator = (params.iterator) ? params.iterator : scope.iterator,
base = $location.path().replace(/^\//, '').split('/')[0];
url;
// iterator = (params.iterator) ? params.iterator : scope.iterator,
// base = $location.path().replace(/^\//, '').split('/')[0];
scope.survey_questions = [];
scope.answer_types=[
@ -548,22 +549,27 @@ angular.module('SurveyHelper', [ 'Utilities', 'RestServices', 'SchedulesHelper',
}
};
scope.refreshSchedules = function() {
if (base === 'jobs') {
parent_scope.refreshJobs();
scope.saveSurvey = function() {
Wait('start');
if(scope.mode==="add"){
$('#survey-modal-dialog').dialog('close');
scope.$emit('SurveySaved');
}
else {
scope.search(iterator);
else{
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-include="'/static/partials/schedule_dialog.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>