<commit_before><template>
  <div v-frag>
    <div class="panel panel-default panel-flt">
      <ul class="list-group">
        <li class="list-group-item">
          <div class="row">
            <div class="col-xs-12 col-md-6 col-lg-6">
              Вход выполнен как: {{ user_data.username }}
              <a href="#" class="a-under" @click="modalPassword = true" v-if="changePassword">сменить&nbsp;пароль</a>
              <template v-if="changePassword">
                <br />
                Email: {{ email || '' }}
                <a href="#" class="a-under" @click="modalEmail = true">{{ email ? 'ред.' : 'установить email' }}</a>
              </template>
            </div>
            <div class="col-xs-12 col-md-6 col-lg-6 text-right text-left-xs">
              {{ fio_dep }}
              <br />
              <a href="/logout" class="btn btn-blue-nb">Выход</a>
            </div>
          </div>
        </li>
        <li class="list-group-item">
          Ваши права доступа и группы:
          <div class="row dash-buttons groups-btns">
            <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb5" v-for="g in user_data.groups" :key="g">
              <div class="label label-default bw100 btn-ell" :title="g">{{ g }}</div>
            </div>
          </div>
        </li>
        <li class="list-group-item" v-if="user_data.specialities && user_data.specialities.length > 0">
          Специальности:
          <div class="row dash-buttons groups-btns" v-for="s in user_data.specialities" :key="s">
            <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb5">
              <div class="label label-default bw100 btn-ell" :title="s">{{ s }}</div>
            </div>
          </div>
        </li>
      </ul>
    </div>
    <div class="row menu dash-buttons text-center">
      <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb10 dash-btn" v-for="b in buttons" :key="b.title">
        <router-link :to="b.url" class="panel-body" :target="b.nt && '_blank'">
          <span>{{ b.title }}</span>
        </router-link>
      </div>
    </div>
    <hr />
    <div class="row dash-buttons text-center">
      <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 mb10 dash-btn dash-info">
        <div class="panel-body">
          <span>
            <span>{{ system }}</span>
            <br />
            <span>{{ menu.version }}</span>
          </span>
        </div>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 mb10 dash-btn dash-info" v-if="menu.region === '38'">
        <a href="http://l2-irk.ru" target="_blank" class="panel-body">
          <span>l2-irk.ru</span>
        </a>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 mb10 dash-btn dash-info" v-else-if="menu.region === 'DEMO'">
        <div class="panel-body">
          <span>
            <span>DEMO</span>
          </span>
        </div>
      </div>
    </div>
    <MountingPortal mountTo="#portal-place-modal" name="ChangePassword" append>
      <transition name="fade">
        <Modal
          v-if="modalPassword"
          @close="modalPassword = false"
          show-footer="true"
          white-bg="true"
          max-width="710px"
          width="100%"
          marginLeftRight="auto"
          :noClose="!!loading"
        >
          <span slot="header">Смена пароля</span>
          <div slot="body" class="popup-body" v-if="email">
            Ваш email: <strong>{{ email }}</strong>
            <br />
            Новый пароль будет отправлен вам на почту!<br />
            После получения пароля войдите в систему заново.<br />
            Все активные сессии будут прекращены (включая текущую).
            <br /><br />
            <button @click="doChangePassword" class="btn btn-blue-nb" :disabled="loading" type="button">
              Сменить пароль
            </button>
          </div>
          <div slot="body" class="popup-body" v-else>
            <div class="alert-modal">В вашем профиле не настроен <strong>email адрес</strong>!</div>
          </div>
          <div slot="footer">
            <div class="row">
              <div class="col-xs-6">
                <button @click="modalPassword = false" class="btn btn-blue-nb" :disabled="loading" type="button">
                  Отмена
                </button>
              </div>
            </div>
          </div>
        </Modal>
      </transition>
    </MountingPortal>
    <MountingPortal mountTo="#portal-place-modal" name="Email" append>
      <transition name="fade">
        <Modal
          v-if="modalEmail"
          @close="modalEmail = false"
          show-footer="true"
          white-bg="true"
          max-width="710px"
          width="100%"
          marginLeftRight="auto"
          :noClose="!!loading"
        >
          <span slot="header">Установка email</span>
          <div slot="body" class="popup-body" v-if="!hasNewCodeRequest">
            Ваш текущий email: <strong>{{ email || 'не установлен' }}</strong>
            <br />
            <div v-if="email && !hasCodeRequest" class="alert-modal">
              Для установки нового адреса запросите код на предыдущий.<br />
              Если у вас нет доступа к {{ email }}, то обратитесь к администратору.
            </div>
            <button @click="requestCode" class="btn btn-blue-nb" :disabled="loading" v-if="needCodeRequest" type="button">
              Запросить код
            </button>

            <input
              v-else-if="email"
              type="text"
              v-model.trim="confirmationCode"
              class="form-control"
              style="margin-bottom: 10px;"
              :placeholder="`Код с ${email}`"
              :readonly="loading"
            />

            <template v-if="!needCodeRequest">
              <input
                type="email"
                v-model.trim="newEmail"
                class="form-control"
                placeholder="Новый адрес"
                style="margin-bottom: 5px;"
                :readonly="loading"
              />
              <div v-if="newEmailIsNotValid">{{ newEmailIsNotValid }}</div>

              <button
                @click="setNewEmail"
                class="btn btn-blue-nb"
                style="margin-top: 5px;"
                :disabled="loading || !!newEmailIsNotValid || (!confirmationCode && !!email)"
                type="button"
              >
                Установить email
              </button>
            </template>
          </div>
          <div slot="body" class="popup-body" v-else>
            <a @click.prevent="hasNewCodeRequest = loading" class="a-under" :style="loading ? 'opacity: 0' : ''" href="#">
              вернуться назад
            </a>
            <br />
            Подтвердите
            <span v-if="email">
              смену адреса с <strong>{{ email }}</strong> на
            </span>
            <span v-else>установку адреса</span>
            <strong>{{ newEmail }}</strong>
            <br />
            Вам был отправлен код на новый адрес.
            <br />

            <input
              type="text"
              v-model.trim="newConfirmationCode"
              class="form-control"
              style="margin-bottom: 5px;"
              :placeholder="`Код с ${newEmail}`"
              :readonly="loading"
            />

            <button @click="confirmNewEmail" class="btn btn-blue-nb" :disabled="!newConfirmationCode || loading" type="button">
              Подтвердить
            </button>
          </div>
          <div slot="footer">
            <div class="row">
              <div class="col-xs-6">
                <button @click="modalEmail = false" class="btn btn-blue-nb" :disabled="loading" type="button">
                  Отмена
                </button>
              </div>
            </div>
          </div>
        </Modal>
      </transition>
    </MountingPortal>
  </div>
</template>

<script lang="ts">
import Vue from 'vue';
import Component from 'vue-class-component';
import { mapGetters } from 'vuex';
import Modal from '@/ui-cards/Modal.vue';<commit_msg>close btn<commit_after><template>
  <div v-frag>
    <div class="panel panel-default panel-flt">
      <ul class="list-group">
        <li class="list-group-item">
          <div class="row">
            <div class="col-xs-12 col-md-6 col-lg-6">
              Вход выполнен как: {{ user_data.username }}
              <a href="#" class="a-under" @click="modalPassword = true" v-if="changePassword">сменить&nbsp;пароль</a>
              <template v-if="changePassword">
                <br />
                Email: {{ email || '' }}
                <a href="#" class="a-under" @click="modalEmail = true">{{ email ? 'ред.' : 'установить email' }}</a>
              </template>
            </div>
            <div class="col-xs-12 col-md-6 col-lg-6 text-right text-left-xs">
              {{ fio_dep }}
              <br />
              <a href="/logout" class="btn btn-blue-nb">Выход</a>
            </div>
          </div>
        </li>
        <li class="list-group-item">
          Ваши права доступа и группы:
          <div class="row dash-buttons groups-btns">
            <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb5" v-for="g in user_data.groups" :key="g">
              <div class="label label-default bw100 btn-ell" :title="g">{{ g }}</div>
            </div>
          </div>
        </li>
        <li class="list-group-item" v-if="user_data.specialities && user_data.specialities.length > 0">
          Специальности:
          <div class="row dash-buttons groups-btns" v-for="s in user_data.specialities" :key="s">
            <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb5">
              <div class="label label-default bw100 btn-ell" :title="s">{{ s }}</div>
            </div>
          </div>
        </li>
      </ul>
    </div>
    <div class="row menu dash-buttons text-center">
      <div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 mb10 dash-btn" v-for="b in buttons" :key="b.title">
        <router-link :to="b.url" class="panel-body" :target="b.nt && '_blank'">
          <span>{{ b.title }}</span>
        </router-link>
      </div>
    </div>
    <hr />
    <div class="row dash-buttons text-center">
      <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 mb10 dash-btn dash-info">
        <div class="panel-body">
          <span>
            <span>{{ system }}</span>
            <br />
            <span>{{ menu.version }}</span>
          </span>
        </div>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 mb10 dash-btn dash-info" v-if="menu.region === '38'">
        <a href="http://l2-irk.ru" target="_blank" class="panel-body">
          <span>l2-irk.ru</span>
        </a>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-4 col-lg-4 mb10 dash-btn dash-info" v-else-if="menu.region === 'DEMO'">
        <div class="panel-body">
          <span>
            <span>DEMO</span>
          </span>
        </div>
      </div>
    </div>
    <MountingPortal mountTo="#portal-place-modal" name="ChangePassword" append>
      <transition name="fade">
        <Modal
          v-if="modalPassword"
          @close="modalPassword = false"
          show-footer="true"
          white-bg="true"
          max-width="710px"
          width="100%"
          marginLeftRight="auto"
          :noClose="!!loading"
        >
          <span slot="header">Смена пароля</span>
          <div slot="body" class="popup-body" v-if="email">
            Ваш email: <strong>{{ email }}</strong>
            <br />
            Новый пароль будет отправлен вам на почту!<br />
            После получения пароля войдите в систему заново.<br />
            Все активные сессии будут прекращены (включая текущую).
            <br /><br />
            <button @click="doChangePassword" class="btn btn-blue-nb" :disabled="loading" type="button">
              Сменить пароль
            </button>
          </div>
          <div slot="body" class="popup-body" v-else>
            <div class="alert-modal">В вашем профиле не настроен <strong>email адрес</strong>!</div>
          </div>
          <div slot="footer">
            <div class="row">
              <div class="col-xs-12 text-right">
                <button @click="modalPassword = false" class="btn btn-blue-nb" :disabled="loading" type="button">
                  Закрыть
                </button>
              </div>
            </div>
          </div>
        </Modal>
      </transition>
    </MountingPortal>
    <MountingPortal mountTo="#portal-place-modal" name="Email" append>
      <transition name="fade">
        <Modal
          v-if="modalEmail"
          @close="modalEmail = false"
          show-footer="true"
          white-bg="true"
          max-width="710px"
          width="100%"
          marginLeftRight="auto"
          :noClose="!!loading"
        >
          <span slot="header">Установка email</span>
          <div slot="body" class="popup-body" v-if="!hasNewCodeRequest">
            Ваш текущий email: <strong>{{ email || 'не установлен' }}</strong>
            <br />
            <div v-if="email && !hasCodeRequest" class="alert-modal">
              Для установки нового адреса запросите код на предыдущий.<br />
              Если у вас нет доступа к {{ email }}, то обратитесь к администратору.
            </div>
            <button @click="requestCode" class="btn btn-blue-nb" :disabled="loading" v-if="needCodeRequest" type="button">
              Запросить код
            </button>

            <input
              v-else-if="email"
              type="text"
              v-model.trim="confirmationCode"
              class="form-control"
              style="margin-bottom: 10px;"
              :placeholder="`Код с ${email}`"
              :readonly="loading"
            />

            <template v-if="!needCodeRequest">
              <input
                type="email"
                v-model.trim="newEmail"
                class="form-control"
                placeholder="Новый адрес"
                style="margin-bottom: 5px;"
                :readonly="loading"
              />
              <div v-if="newEmailIsNotValid">{{ newEmailIsNotValid }}</div>

              <button
                @click="setNewEmail"
                class="btn btn-blue-nb"
                style="margin-top: 5px;"
                :disabled="loading || !!newEmailIsNotValid || (!confirmationCode && !!email)"
                type="button"
              >
                Установить email
              </button>
            </template>
          </div>
          <div slot="body" class="popup-body" v-else>
            <a @click.prevent="hasNewCodeRequest = loading" class="a-under" :style="loading ? 'opacity: 0' : ''" href="#">
              вернуться назад
            </a>
            <br />
            Подтвердите
            <span v-if="email">
              смену адреса с <strong>{{ email }}</strong> на
            </span>
            <span v-else>установку адреса</span>
            <strong>{{ newEmail }}</strong>
            <br />
            Вам был отправлен код на новый адрес.
            <br />

            <input
              type="text"
              v-model.trim="newConfirmationCode"
              class="form-control"
              style="margin-bottom: 5px;"
              :placeholder="`Код с ${newEmail}`"
              :readonly="loading"
            />

            <button @click="confirmNewEmail" class="btn btn-blue-nb" :disabled="!newConfirmationCode || loading" type="button">
              Подтвердить
            </button>
          </div>
          <div slot="footer">
            <div class="row">
              <div class="col-xs-12 text-right">
                <button @click="modalEmail = false" class="btn btn-blue-nb" :disabled="loading" type="button">
                  Закрыть
                </button>
              </div>
            </div>
          </div>
        </Modal>
      </transition>
    </MountingPortal>
  </div>
</template>

<script lang="ts">
import Vue from 'vue';
import Component from 'vue-class-component';
import { mapGetters } from 'vuex';
import Modal from '@/ui-cards/Modal.vue';
{'fraction_non_alphanumeric': 0.15781018289668808, 'fraction_numerical': 0.009886307464162136, 'mean_word_length': 1.61639185257032, 'pattern_counts': {'":': 0, '<': 331, '<?xml version=': 0, '>': 333, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '228112', 'n_tokens_mistral': 5076, 'n_tokens_neox': 5063, 'n_words': 1040}