ca.bbcollab.com Open in urlscan Pro
35.182.182.146  Public Scan

Submitted URL: http://ca.bbcollab.com/
Effective URL: https://ca.bbcollab.com/collab/ui/scheduler/
Submission: On December 11 via api from US — Scanned from CA

Form analysis 1 forms found in the DOM

Name: forms.loginForm

<form name="forms.loginForm" id="loginForm" ng-if="formCtrl.error !== 'not-ultra-enabled'" ng-submit="formCtrl.LoginProvided()" novalidate="" class="ng-pristine ng-scope ng-invalid ng-invalid-required">
  <div class="floating-label username-input input-focused" ng-init="focusedUsername = false" ng-class="{
                   'has-value': formCtrl.loginInfo.username.length,
                   'input-focused': focusedUsername
                }">
    <label for="username" bb-translate="" class="ng-scope" analytics-id="login.form.username">Username</label>
    <input type="text" id="username" name="username" ng-model="formCtrl.loginInfo.username" required="" ng-focus="focusedUsername = true" ng-blur="focusedUsername = false" bb-focus=""
      class="ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required">
    <div bb-validation-messages="" for="username" class="ng-isolate-scope">
      <!-- Errors -->
      <script type="text/ng-template" id="default-error-messages"> <span ng-message="numberInvalid"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.number_invalid</span></span>
  <span ng-message="numberLarge"><span bb-error-alert bb-translate translate-values="{ error: element.$error.numberLarge }">components.directives.validation.messages.errors.number_large</span></span>
  <span ng-message="numberSmall"><span bb-error-alert bb-translate translate-values="{ error: element.$error.numberSmall }">components.directives.validation.messages.errors.number_small</span></span>
  <span ng-message="max"><span bb-error-alert bb-translate translate-values="{ min: getAttr('min') }">components.directives.validation.messages.errors.number_max</span></span>
  <span ng-message="min"><span bb-error-alert bb-translate translate-values="{ max: getAttr('max') }">components.directives.validation.messages.errors.number_min</span></span>
  <span ng-message="number"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.number_invalid</span></span>
  <span ng-message="maxlength"><span bb-error-alert bb-translate translate-values="{ diff: element.$error.maxlengthdiff }">components.directives.validation.messages.errors.maxlength.plural</span></span>
  <span ng-message="bbMaxlength"><span bb-error-alert bb-translate translate-values="{ diff: element.$error.bbMaxlengthDiff }">components.directives.validation.messages.errors.maxlength.plural</span></span>
  <span ng-message="url"><span bb-error-alert bb-translate translate-values="{ error: element.$error.url }">components.directives.validation.messages.errors.url</span></span>
  <span ng-message="required"><span bb-error-alert bb-translate translate-values="{ error: element.$error.required }">components.directives.validation.messages.errors.required</span></span>
  <span ng-message="email"><span bb-error-alert bb-translate translate-values="{ error: element.$error.email }">components.directives.validation.messages.errors.email</span></span>
  <span ng-message="time"><span bb-error-alert bb-translate translate-values="{ error: element.$error.time }">components.directives.validation.messages.errors.time</span></span>
  <span ng-message="date"><span bb-error-alert bb-translate translate-values="{ error: element.$error.date }">components.directives.validation.messages.errors.date</span></span>
  <span ng-message="maxDate"><span bb-error-alert bb-translate translate-values="{ maxDate: element.$error.maxDate }">components.directives.validation.messages.errors.max_date</span></span>
  <span ng-message="minDate"><span bb-error-alert bb-translate translate-values="{ minDate: element.$error.minDate }">components.directives.validation.messages.errors.min_date</span></span>
  <span ng-message="schemaSymbolString"><span bb-error-alert bb-translate translate-values="{ error: element.$error.schemaSymbolString }">components.directives.validation.messages.errors.schema_symbol_string</span></span>
  <span ng-message="match"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.match</span></span>
  <span ng-message="equalsTo"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.equals-to</span></span>
  <span ng-message="passwordLength"><span bb-error-alert bb-translate translate-values="{ minLength: element.$error.passwordLengthChars }">components.directives.validation.messages.errors.password-length.plural</span></span>
  <span ng-message="passwordUnique"><span bb-error-alert bb-translate translate-values="{ minUnique: element.$error.passwordUniqueChars }">components.directives.validation.messages.errors.password-unique.plural</span></span>
  <span ng-message="invalidChars"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.username-illegal-chars</span></span>
  <span ng-message="invalidUuid"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.invalid-uuid</span></span>
  <span ng-message="startsWithAlphanumeric"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.username-alphanumeric</span></span>
</script>
      <!-- Immediate Errors -->
      <script type="text/ng-template" id="default-immediate-error-messages"> <span ng-message="maxlengthImmediate">
    <span bb-error-alert bb-translate translate-values="{ diff: element.$errorImmediate.maxlengthImmediate.diff }">components.directives.validation.messages.errors.maxlength.plural</span>
  </span>
  <span ng-message="bbMaxlengthImmediate">
    <span bb-error-alert bb-translate translate-values="{ diff: element.$errorImmediate.bbMaxlengthDiff }">components.directives.validation.messages.errors.maxlength.plural</span>
  </span>
</script>
      <!-- Warnings -->
      <script type="text/ng-template" id="default-warning-messages"> <span ng-message="maxlengthWarning">
    <span bb-error-alert bb-translate translate-values="{ left: element.$warning.maxlengthWarning.left }">components.directives.validation.messages.warnings.maxlength.plural</span>
  </span>
</script>
      <!-- ngIf: showErrors() -->
      <!-- ngIf: showImmediateErrors() -->
      <!-- ngIf: showWarnings() -->
    </div>
  </div>
  <div class="floating-label password-input" ng-init="focusedPassword = false" ng-class="{
                   'has-value': formCtrl.loginInfo.password.length,
                   'input-focused': focusedPassword
                }">
    <label for="password" bb-translate="" class="ng-scope" analytics-id="login.form.password">Password</label>
    <input type="password" id="password" name="password" ng-model="formCtrl.loginInfo.password" required="" ng-focus="focusedPassword = true" ng-blur="focusedPassword = false" class="ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required">
    <div bb-validation-messages="" for="password" class="ng-isolate-scope">
      <!-- Errors -->
      <script type="text/ng-template" id="default-error-messages"> <span ng-message="numberInvalid"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.number_invalid</span></span>
  <span ng-message="numberLarge"><span bb-error-alert bb-translate translate-values="{ error: element.$error.numberLarge }">components.directives.validation.messages.errors.number_large</span></span>
  <span ng-message="numberSmall"><span bb-error-alert bb-translate translate-values="{ error: element.$error.numberSmall }">components.directives.validation.messages.errors.number_small</span></span>
  <span ng-message="max"><span bb-error-alert bb-translate translate-values="{ min: getAttr('min') }">components.directives.validation.messages.errors.number_max</span></span>
  <span ng-message="min"><span bb-error-alert bb-translate translate-values="{ max: getAttr('max') }">components.directives.validation.messages.errors.number_min</span></span>
  <span ng-message="number"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.number_invalid</span></span>
  <span ng-message="maxlength"><span bb-error-alert bb-translate translate-values="{ diff: element.$error.maxlengthdiff }">components.directives.validation.messages.errors.maxlength.plural</span></span>
  <span ng-message="bbMaxlength"><span bb-error-alert bb-translate translate-values="{ diff: element.$error.bbMaxlengthDiff }">components.directives.validation.messages.errors.maxlength.plural</span></span>
  <span ng-message="url"><span bb-error-alert bb-translate translate-values="{ error: element.$error.url }">components.directives.validation.messages.errors.url</span></span>
  <span ng-message="required"><span bb-error-alert bb-translate translate-values="{ error: element.$error.required }">components.directives.validation.messages.errors.required</span></span>
  <span ng-message="email"><span bb-error-alert bb-translate translate-values="{ error: element.$error.email }">components.directives.validation.messages.errors.email</span></span>
  <span ng-message="time"><span bb-error-alert bb-translate translate-values="{ error: element.$error.time }">components.directives.validation.messages.errors.time</span></span>
  <span ng-message="date"><span bb-error-alert bb-translate translate-values="{ error: element.$error.date }">components.directives.validation.messages.errors.date</span></span>
  <span ng-message="maxDate"><span bb-error-alert bb-translate translate-values="{ maxDate: element.$error.maxDate }">components.directives.validation.messages.errors.max_date</span></span>
  <span ng-message="minDate"><span bb-error-alert bb-translate translate-values="{ minDate: element.$error.minDate }">components.directives.validation.messages.errors.min_date</span></span>
  <span ng-message="schemaSymbolString"><span bb-error-alert bb-translate translate-values="{ error: element.$error.schemaSymbolString }">components.directives.validation.messages.errors.schema_symbol_string</span></span>
  <span ng-message="match"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.match</span></span>
  <span ng-message="equalsTo"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.equals-to</span></span>
  <span ng-message="passwordLength"><span bb-error-alert bb-translate translate-values="{ minLength: element.$error.passwordLengthChars }">components.directives.validation.messages.errors.password-length.plural</span></span>
  <span ng-message="passwordUnique"><span bb-error-alert bb-translate translate-values="{ minUnique: element.$error.passwordUniqueChars }">components.directives.validation.messages.errors.password-unique.plural</span></span>
  <span ng-message="invalidChars"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.username-illegal-chars</span></span>
  <span ng-message="invalidUuid"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.invalid-uuid</span></span>
  <span ng-message="startsWithAlphanumeric"><span bb-error-alert bb-translate>components.directives.validation.messages.errors.username-alphanumeric</span></span>
</script>
      <!-- Immediate Errors -->
      <script type="text/ng-template" id="default-immediate-error-messages"> <span ng-message="maxlengthImmediate">
    <span bb-error-alert bb-translate translate-values="{ diff: element.$errorImmediate.maxlengthImmediate.diff }">components.directives.validation.messages.errors.maxlength.plural</span>
  </span>
  <span ng-message="bbMaxlengthImmediate">
    <span bb-error-alert bb-translate translate-values="{ diff: element.$errorImmediate.bbMaxlengthDiff }">components.directives.validation.messages.errors.maxlength.plural</span>
  </span>
</script>
      <!-- Warnings -->
      <script type="text/ng-template" id="default-warning-messages"> <span ng-message="maxlengthWarning">
    <span bb-error-alert bb-translate translate-values="{ left: element.$warning.maxlengthWarning.left }">components.directives.validation.messages.warnings.maxlength.plural</span>
  </span>
</script>
      <!-- ngIf: showErrors() -->
      <!-- ngIf: showImmediateErrors() -->
      <!-- ngIf: showWarnings() -->
    </div>
  </div>
  <!-- ngIf: formCtrl.ultraPasswordReset() --><a ng-if="formCtrl.ultraPasswordReset()" ui-sref="login.reset-password" class="button text right forgot-password-link password-ultra ng-scope" bb-translate="" href="/collab/ui/scheduler/reset-password" analytics-id="login.form.reset-password">Forgot password?</a><!-- end ngIf: formCtrl.ultraPasswordReset() -->
  <!-- ngIf: !formCtrl.ultraPasswordReset() -->
  <button id="login-html-guest" type="submit" class="button large button--inverse -outline expanded ng-scope" bb-translate="" analytics-id="login.form.login-button">Log In</button>
</form>

Text Content

Username

Password

Forgot password? Log In
© 2022-2023 Class Technologies Inc. All Rights Reserved.
 * Help |
 * Privacy Policy |
 * Terms of Use