@okta-dfuhriman/okta-auth-js
Version:
The Okta Auth SDK
67 lines (57 loc) • 1.91 kB
JavaScript
/*!
* Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
*
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the License for the specific language governing permissions and limitations under the License.
*/
import { _, loc, View } from 'okta';
import hbs from 'handlebars-inline-precompile';
import FormController from 'v1/util/FormController';
import FormType from 'v1/util/FormType';
import Footer from 'v1/views/enroll-factors/Footer';
const Model = {
local: {
factorType: 'string',
provider: 'string',
},
save: function() {
this.trigger('save');
const factorOpt = this.pick('factorType', 'provider');
return this.doTransaction(function(transaction) {
const factor = _.findWhere(transaction.factors, factorOpt);
return factor.enroll();
});
},
};
const Form = function() {
return {
title: _.partial(loc, 'email.enroll.title', 'login'),
noButtonBar: false,
autoSave: true,
save: _.partial(loc, 'email.button.send', 'login'),
formChildren: [
FormType.View({
View: View.extend({
attributes: {
'data-se': 'enroll-email-content',
},
template: hbs('{{i18n code="email.enroll.description" bundle="login"}}'),
}),
}),
],
};
};
export default FormController.extend({
className: 'enroll-email',
Model: Model,
Form: Form,
Footer: Footer,
initialize: function() {
this.model.set(_.pick(this.options, 'factorType', 'provider'));
},
});