signup_ctrl.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import config from 'app/core/config';
  2. import coreModule from '../core_module';
  3. export class SignUpCtrl {
  4. /** @ngInject */
  5. constructor(private $scope: any, private backendSrv: any, $location: any, contextSrv: any) {
  6. contextSrv.sidemenu = false;
  7. $scope.ctrl = this;
  8. $scope.formModel = {};
  9. const params = $location.search();
  10. // validate email is semi ok
  11. if (params.email && !params.email.match(/^\S+@\S+$/)) {
  12. console.log('invalid email');
  13. return;
  14. }
  15. $scope.formModel.orgName = params.email;
  16. $scope.formModel.email = params.email;
  17. $scope.formModel.username = params.email;
  18. $scope.formModel.code = params.code;
  19. $scope.verifyEmailEnabled = false;
  20. $scope.autoAssignOrg = false;
  21. $scope.navModel = {
  22. main: {
  23. icon: 'gicon gicon-branding',
  24. text: 'Sign Up',
  25. subTitle: 'Register your Grafana account',
  26. breadcrumbs: [{ title: 'Login', url: 'login' }],
  27. },
  28. };
  29. backendSrv.get('/api/user/signup/options').then((options: any) => {
  30. $scope.verifyEmailEnabled = options.verifyEmailEnabled;
  31. $scope.autoAssignOrg = options.autoAssignOrg;
  32. });
  33. }
  34. submit() {
  35. if (!this.$scope.signUpForm.$valid) {
  36. return;
  37. }
  38. this.backendSrv.post('/api/user/signup/step2', this.$scope.formModel).then((rsp: any) => {
  39. if (rsp.code === 'redirect-to-select-org') {
  40. window.location.href = config.appSubUrl + '/profile/select-org?signup=1';
  41. } else {
  42. window.location.href = config.appSubUrl + '/';
  43. }
  44. });
  45. }
  46. }
  47. coreModule.controller('SignUpCtrl', SignUpCtrl);