Implement required validation

Implement required validation

<template>

  <core-modal :title="$tr('renameExam')" @cancel="close">
    <form @submit.prevent="callRenameExam">
      <k-textbox
        :label="$tr('examName')"
        :autofocus="true"
        :invalid="titleIsInvalid"
        :invalidText="titleIsInvalidText"
        @blur="validateTitle = true"
        v-model.trim="newExamTitle"
      />
      <div class="footer">
        <k-button :text="$tr('cancel')" :raised="false" type="button" @click="close"/>
        <k-button :text="$tr('rename')" :primary="true" type="submit" :disabled="!formIsValid || submitting"/>
      </div>
    </form>
  </core-modal>

</template>

<script>

  import { displayExamModal, renameExam } from '../../state/actions/exam';
  import coreModal from 'kolibri.coreVue.components.coreModal';
  import kButton from 'kolibri.coreVue.components.kButton';
  import kTextbox from 'kolibri.coreVue.components.kTextbox';
  export default {
    name: 'renameExamModal',
    $trs: {
      renameExam: 'Rename exam',
      examName: 'Exam name',
      cancel: 'Cancel',
      rename: 'Rename',
      duplicateTitle: 'An exam with that title already exists',
      required: 'This field is required',
    },
    components: {
      coreModal,
      kButton,
      kTextbox,
    },
    props: {
      examId: {
        type: String,
        required: true,
      },
      examTitle: {
        type: String,
        required: true,
      },
      classId: {
        type: String,
        required: true,
      },
      exams: {
        type: Array,
        required: true,
      },
    },
    data() {
      return {
        newExamTitle: this.examTitle,
        validateTitle: false,
        validateForm: false,
        submitting: false,
      };
    },
    computed: {
      duplicateTitle() {
        if (this.newExamTitle === this.examTitle) {
          return false;
        }
        const index = this.exams.findIndex(
          exam => exam.title.toUpperCase() === this.newExamTitle.toUpperCase()
        );
        if (index === -1) {
          return false;
        }
        return true;
      },
      titleIsInvalidText() {
        if (this.validateTitle || this.validateForm) {
          if (this.newExamTitle === '') {
            return this.$tr('required');
          }
          if (this.duplicateTitle) {
            return this.$tr('duplicateTitle');
          }
        }
        return '';
      },
      titleIsInvalid() {
        return !!this.titleIsInvalidText;
      },
      formIsValid() {
        return !this.titleIsInvalid;
      },
    },
    methods: {
      callRenameExam() {
        this.validateForm = true;
        if (this.formIsValid) {
          this.submitting = true;
          this.renameExam(this.examId, this.newExamTitle);
        }
      },
      close() {
        this.displayExamModal(false);
      },
    },
    vuex: {
      actions: {
        displayExamModal,
        renameExam,
      },
    },
  };

</script>

<style lang="stylus" scoped>

  .footer
    text-align: center
    button
      min-width: 45%

</style>

<template>

  <core-modal :title="$tr('renameExam')" @cancel="close">
    <form @submit.prevent="callRenameExam">
      <k-textbox
        :label="$tr('examName')"
        :autofocus="true"
        :required="true"
        :invalid="duplicateTitle"
        :invalidText="$tr('duplicateTitle')"
        v-model.trim="newExamTitle"/>
      <div class="footer">
        <k-button :text="$tr('cancel')" :raised="false" type="button" @click="close"/>
        <k-button :text="$tr('rename')" :primary="true" type="submit"/>
      </div>
    </form>
  </core-modal>

</template>

<script>

  import * as examActions from '../../state/actions/exam';
  import coreModal from 'kolibri.coreVue.components.coreModal';
  import kButton from 'kolibri.coreVue.components.kButton';
  import kTextbox from 'kolibri.coreVue.components.kTextbox';
  export default {
    name: 'renameExamModal',
    $trs: {
      renameExam: 'Rename exam',
      examName: 'Exam name',
      cancel: 'Cancel',
      rename: 'Rename',
      duplicateTitle: 'An exam with that title already exists',
    },
    components: {
      coreModal,
      kButton,
      kTextbox,
    },
    props: {
      examId: {
        type: String,
        required: true,
      },
      examTitle: {
        type: String,
        required: true,
      },
      classId: {
        type: String,
        required: true,
      },
      exams: {
        type: Array,
        required: true,
      },
    },
    data() {
      return { newExamTitle: this.examTitle };
    },
    computed: {
      duplicateTitle() {
        if (this.newExamTitle === this.examTitle) {
          return false;
        }
        const index = this.exams.findIndex(
          exam => exam.title.toUpperCase() === this.newExamTitle.toUpperCase()
        );
        if (index === -1) {
          return false;
        }
        return true;
      },
    },
    methods: {
      callRenameExam() {
        if (!this.duplicateTitle) {
          this.renameExam(this.examId, this.newExamTitle);
        }
      },
      close() {
        this.displayExamModal(false);
      },
    },
    vuex: {
      actions: {
        displayExamModal: examActions.displayExamModal,
        renameExam: examActions.renameExam,
      },
    },
  };

</script>

<style lang="stylus" scoped>

  .footer
    text-align: center
    button
      min-width: 45%

</style>


handle ‘enter’ event from modal in all pages

<template>

  <core-modal
    title="Edit Account Info"
    :has-error="error_message ? true : false"
    @enter="submit"
    @cancel="emitCloseSignal"
  >

      <template v-if="!usr_delete && !pw_reset">

          Full Name:
          <input type="text" class="edit-form edit-fullname" aria-label="fullname" id="fullname" v-model="fullName_new">

          Username:
          <input type="text" class="edit-form edit-username" aria-label="username" id="username" v-model="username_new">

          User Role
          <select v-model="role_new" id="user-role">
            <option :selected="role_new == learner" v-if="role_new" value="learner"> Learner </option>
            <option :selected="role_new == admin" value="admin"> Admin </option>
          </select>

          <button @click="pw_reset=!pw_reset"> Reset Password </button>
          <button @click="usr_delete=!usr_delete"> Delete User</button>

      </template>

      <template v-if="pw_reset" >

Username: {{username_new}}

          Enter new password:
          <input type="password" class="edit-form" id="password" required v-model="password_new">

          Confirm new password:
          <input type="password" class="edit-form" id="password-confirm" required v-model="password_new_confirm">

      </template>

      <template v-if="usr_delete">

Are you sure you want to delete {{username_new}}?

      </template>

 {{error_message}}

 {{confirmation_message}}

        <icon-button
          v-if="!usr_delete && !pw_reset"
          text="Cancel"
          class="undo-btn"
          @click="emitCloseSignal">
        </icon-button>

        <icon-button
          v-else
          :text="pw_reset ? 'Back' : 'No'"
          class="undo-btn"
          @click="clear">
        </icon-button>

        <icon-button
          v-if="!usr_delete && !pw_reset"
          text="Confirm"
          class="confirm-btn"
          :primary="true"
          @click="submit">
        </icon-button>

        <icon-button
          v-if="pw_reset"
          text="Save"
          class="confirm-btn"
          :primary="true"
          @click="submit">
        </icon-button>

        <icon-button
          v-if="usr_delete"
          text="Yes"
          class="confirm-btn"
          :primary="true"
          @click="submit">
        </icon-button>

  </core-modal>

</template>

<template>

  <core-modal
    title="Edit Account Info"
    :has-error="error_message ? true : false"
    @enter="editUser"
    @cancel="close"
  >

      <template v-if="!usr_delete && !pw_reset">

          Full Name:
          <input type="text" class="edit-form edit-fullname" aria-label="fullname" id="fullname" v-model="fullName_new">

          Username:
          <input type="text" class="edit-form edit-username" aria-label="username" id="username" v-model="username_new">

          User Role
          <select v-model="role_new" id="user-role">
            <option :selected="role_new == learner" v-if="role_new" value="learner"> Learner </option>
            <option :selected="role_new == admin" value="admin"> Admin </option>
          </select>

          <button @click="pw_reset=!pw_reset"> Reset Password </button>
          <button @click="usr_delete=!usr_delete"> Delete User</button>

      </template>

      <template v-if="pw_reset" >

Username: {{username_new}}

          Enter new password:
          <input type="password" class="edit-form" id="password" required v-model="password_new">

          Confirm new password:
          <input type="password" class="edit-form" id="password-confirm" required v-model="password_new_confirm">

      </template>

      <template v-if="usr_delete">

Are you sure you want to delete {{username_new}}?

      </template>

 {{error_message}}

 {{confirmation_message}}

        <icon-button
          v-if="!usr_delete && !pw_reset"
          text="Cancel"
          class="undo-btn"
          @click="close">
        </icon-button>

        <icon-button
          v-else
          :text="pw_reset ? 'Back' : 'No'"
          class="undo-btn"
          @click="clear">
        </icon-button>

        <icon-button
          v-if="!usr_delete && !pw_reset"
          text="Confirm"
          class="confirm-btn"
          :primary="true"
          @click="editUser">
        </icon-button>

        <icon-button
          v-if="pw_reset"
          text="Save"
          class="confirm-btn"
          :primary="true"
          @click="changePassword">
        </icon-button>

        <icon-button
          v-if="usr_delete"
          text="Yes"
          class="confirm-btn"
          :primary="true"
          @click="delete">
        </icon-button>

  </core-modal>

</template>


Change : BEM css classes for gameDetails page

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Gramatiik/radion-vue.git/'


Quality of life change to transit page

Quality of life change to transit page

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/04n0/goldfish.git/'


add mutation logic for debug page

add mutation logic for debug page

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/notadd/administration.git/'


Removing uneccessary message

Removing uneccessary message

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/anisimovsergey/vue-framework7.git/'


Make close/changed icon more accessible

Make close/changed icon more accessible

Fix
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12198#note_37143527


Change remove button to glyphicon x

Change remove button to glyphicon x

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/PayBreak/basket.git/'


Removes transition

Removes transition

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/NathanielDavid/Sumie.git/'


Sets height to inherit

Sets height to inherit


added contact page

added contact page

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/AleaQ/vue-brunch-experiment.git/'


Removed deprecated vue component

Removed deprecated vue component


docs: add Navbar component

docs: add Navbar component

<template>

    <router-link
      v-for="(nav, $index) in navs"
      :key="$index"
      v-if="!/^http/.test(nav.link)"
      v-text="nav.text"
      :to="nav.link">
    </router-link>
    {{ nav.text }}<outbound-link/>

    GitHub<outbound-link/>

</template>

error: pathspec 'docs/.vuepress/theme/Navbar.vue' did not match any file(s) known to git


Slider: update style

Slider: update style

<template>
  <input class="slider" :class="{ [`is-${type}`]: type, [`is-${size}`]: size, 'is-fullwidth': isFullwidth }" type="range" :min="min" v-model="value" :max="max" :step="step" :name="name" :orient="vertical && 'vertical'" number>
</template>

<script>
export default {
  props: {
    min: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 1
    },
    step: {
      type: Number,
      default: 0.01
    },
    value: Number,
    type: String,
    name: String,
    size: String,
    // orientation:
    isFullwidth: Boolean,
    vertical: Boolean
  },

  ready () {
    this.$el.style.setProperty('--low', this.low)
    this.$el.style.setProperty('--high', this.high)
  },

  watch: {
    value (val) {
      this.$el.style.setProperty('--high', this.high)
    }
  },

  computed: {
    low () {
      return '0%'
    },
    high () {
      return this.value / this.max * 100 + '%'
    }
  }
}
</script>

<style lang="scss">
@import '~bulma/sass/utilities/variables';
@import '~bulma/sass/utilities/mixins';

.slider {
  $radius: 290486px;
  --height: 8px;

  &.is-small {
    --height: 4px;
  }
  &.is-medium {
    --height: 12px;
  }
  &.is-large {
    --height: 16px;
  }

  &.is-fullwidth {
    width: 100%;
  }

  border: none;
  border-radius: $radius;
  display: block;
  height: var(--height);
  padding: 0;
  margin: 0;
  // width: 100%;
  cursor: pointer;
  outline: none;
  background: $border;

  &:focus {
    outline: none;
  }
  // http://stackoverflow.com/questions/18794026/remove-dotted-outline-from-range-input-element-in-firefox
  &::-moz-focus-outer {
    border: none;
  }

  &::-webkit-slider-runnable-track,
  &::-webkit-slider-thumb,
  & {
    appearance: none;
  }

  @mixin thumb-base() {
    border-radius: 50%;
    height: calc(var(--height) * 2.33);
    width: calc(var(--height) * 2.33);
    background-color: #FFF;
    border: 2px solid $text;
    box-shadow: 0 2px 3px rgba(17, 17, 17, 0.1);
    transform: translateZ(0);
    transition: all 0.233 ease-in-out;

    &:hover {
      transform: scale(1.2);
    }
  }

  @mixin thumb-base-active {
    cursor: grabbing;
  }

  @mixin track {
    display: flex;
    align-items: center;
    height: var(--height);
    border-radius: $radius;
    --track-background: linear-gradient(to right, transparent var(--low), $text calc(0%), $text var(--high), transparent calc(0%)) no-repeat 0 100%;
    background: var(--track-background);
  }

  &::-webkit-slider-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-webkit-slider-runnable-track {
    @include track();
  }

  &::-moz-range-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-moz-range-progress:focus {
    outline: 0;
    border: 0;
  }
  &::-moz-range-track {
    background: transparent;
  }
  &::-moz-range-progress {
    display: flex;
    align-items: center;
    width: 100%;
    height: var(--height);
    border-radius: $radius;
    background-color: $text;
  }

  &::-ms-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-ms-tooltip {
    display:none;
  }

  // Colors
  @each $name, $pair in $colors {
    $color: nth($pair, 1);
    &.is-#{$name} {
      &::-webkit-slider-thumb {
        border-color: $color;
      }
      &::-webkit-slider-runnable-track {
        --track-background: linear-gradient(to right, transparent var(--low), $color calc(0%),  $color var(--high), transparent calc(0%)) no-repeat 0 100%;
        background: var(--track-background);
      }
      // http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html
      &::-moz-range-thumb {
        border-color: $color;
      }
      &::-moz-range-progress {
        background-color: $color;
      }
      &::-ms-thumb {
        border-color: $color;
      }
      &::-ms-fill-lower {
        background-color: $color;
      }
    }
  }

  &[orient=vertical] {
    writing-mode: bt-lr; // IE
    -webkit-appearance: slider-vertical;  // webkit
    height: 200px;
    width: var(--height);
    -webkit-transform-origin: 0 0;
    position: relative;
    top: 0;
    left: 0;

    // Colors
    @each $name, $pair in $colors {
      $color: nth($pair, 1);
      &.is-#{$name} {
        &::-webkit-slider-thumb {
          &:after {
            width: 50px;
            height: 50px;
            background-color: red;
            border: 2px solid $color;
            content: '';
            position: absolute;
            z-index: 233;
          }
        }
        &::-webkit-slider-runnable-track {
          display: block;
          --track-background: linear-gradient(to top, transparent var(--low), $color 0,  $color var(--high), transparent 0) no-repeat 0 100%;
          background: var(--track-background);
        }
      }
    }
  }

}
</style>

<template>
  <input class="slider" :class="{ [`is-${type}`]: type, [`is-${size}`]: size, 'is-fullwidth': isFullwidth }" type="range" :min="min" v-model="value" :max="max" :step="step" :name="name" :orient="vertical && 'vertical'" number>
</template>

<script>
export default {
  props: {
    min: {
      type: Number,
      default: 0
    },
    max: {
      type: Number,
      default: 1
    },
    step: {
      type: Number,
      default: 0.01
    },
    value: Number,
    type: String,
    name: String,
    size: String,
    // orientation:
    isFullwidth: Boolean,
    vertical: Boolean
  },

  ready () {
    this.$el.style.setProperty('--low', this.low)
    this.$el.style.setProperty('--high', this.high)
  },

  watch: {
    value (val) {
      this.$el.style.setProperty('--high', this.high)
    }
  },

  computed: {
    low () {
      return '0%'
    },
    high () {
      return this.value / this.max * 100 + '%'
    }
  }
}
</script>

<style lang="scss">
@import '~bulma/sass/utilities/variables';
@import '~bulma/sass/utilities/mixins';

.slider {
  $radius: 290486px;
  --height: 8px;

  &.is-small {
    --height: 4px;
  }
  &.is-medium {
    --height: 12px;
  }
  &.is-large {
    --height: 16px;
  }

  &.is-fullwidth {
    width: 100%;
  }

  border: none;
  border-radius: $radius;
  display: block;
  height: var(--height);
  padding: 0;
  margin: 0;
  // width: 100%;
  cursor: pointer;
  outline: none;
  background: $border;

  &:focus {
    outline: none;
  }
  // http://stackoverflow.com/questions/18794026/remove-dotted-outline-from-range-input-element-in-firefox
  &::-moz-focus-outer {
    border: none;
  }

  &::-webkit-slider-runnable-track,
  &::-webkit-slider-thumb,
  & {
    appearance: none;
  }

  @mixin thumb-base() {
    border-radius: 50%;
    height: calc(var(--height) * 2.33);
    width: calc(var(--height) * 2.33);
    background-color: #FFF;
    border: 2px solid $text;
    box-shadow: 0 2px 3px rgba(17, 17, 17, 0.1);
    transform: translateZ(0);
    transition: all 0.233 ease-in-out;

    &:hover {
      transform: scale(1.2);
    }
  }

  @mixin thumb-base-active {
    cursor: grabbing;
  }

  @mixin track {
    display: flex;
    align-items: center;
    height: var(--height);
    border-radius: $radius;
    --track-background: linear-gradient(to right, transparent var(--low), $text 0%, $text var(--high), transparent 0%) no-repeat 0 100%;
    background: var(--track-background);
  }

  &::-webkit-slider-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-webkit-slider-runnable-track {
    @include track();
  }

  &::-moz-range-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-moz-range-progress:focus {
    outline: 0;
    border: 0;
  }
  &::-moz-range-track {
    background: transparent;
  }
  &::-moz-range-progress {
    display: flex;
    align-items: center;
    width: 100%;
    height: var(--height);
    border-radius: $radius;
    background-color: $text;
  }

  &::-ms-thumb {
    @include thumb-base();
    &:active {
      @include thumb-base-active();
    }
  }
  &::-ms-tooltip {
    display:none;
  }

  // Colors
  @each $name, $pair in $colors {
    $color: nth($pair, 1);
    &.is-#{$name} {
      &::-webkit-slider-thumb {
        border-color: $color;
      }
      &::-webkit-slider-runnable-track {
        --track-background: linear-gradient(to right, transparent var(--low), $color 0%,  $color var(--high), transparent 0%) no-repeat 0 100%;
        background: var(--track-background);
      }
      // http://www.quirksmode.org/blog/archives/2015/11/styling_and_scr.html
      &::-moz-range-thumb {
        border-color: $color;
      }
      &::-moz-range-progress {
        background-color: $color;
      }
      &::-ms-thumb {
        border-color: $color;
      }
      &::-ms-fill-lower {
        background-color: $color;
      }
    }
  }

  &[orient=vertical] {
    writing-mode: bt-lr; // IE
    -webkit-appearance: slider-vertical;  // webkit
    height: 200px;
    width: var(--height);
    -webkit-transform-origin: 0 0;
    position: relative;
    top: 0;
    left: 0;

    // Colors
    @each $name, $pair in $colors {
      $color: nth($pair, 1);
      &.is-#{$name} {
        &::-webkit-slider-thumb {
          &:after {
            width: 50px;
            height: 50px;
            background-color: red;
            border: 2px solid $color;
            content: '';
            position: absolute;
            z-index: 233;
          }
        }
        &::-webkit-slider-runnable-track {
          display: block;
          --track-background: linear-gradient(to top, transparent var(--low), $color 0,  $color var(--high), transparent 0) no-repeat 0 100%;
          background: var(--track-background);
        }
      }
    }
  }

}
</style>


Create eventHub to handle communication between components

<script>
import Vue from 'vue';

export default new Vue();
</script>

error: pathspec 'sashimi-webapp/src/components/file-manager/EventHub.vue' did not match any file(s) known to git


Fix HostNewMatch component

Fix HostNewMatch component

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/kkmsc17/smes.git/'


Adjust placeholder text

Adjust placeholder text


Projects Dropdown Root App Component

Projects Dropdown Root App Component

<script>
import bs from '../../breakpoints';
import eventHub from '../event_hub';
import loadingIcon from '../../vue_shared/components/loading_icon.vue';

import projectsListFrequent from './projects_list_frequent.vue';
import projectsListSearch from './projects_list_search.vue';

import search from './search.vue';

export default {
  components: {
    search,
    loadingIcon,
    projectsListFrequent,
    projectsListSearch,
  },
  props: {
    currentProject: {
      type: Object,
      required: true,
    },
    store: {
      type: Object,
      required: true,
    },
    service: {
      type: Object,
      required: true,
    },
  },
  data() {
    return {
      isLoadingProjects: false,
      isFrequentsListVisible: false,
      isSearchListVisible: false,
      isLocalStorageFailed: false,
      isSearchFailed: false,
      searchQuery: '',
    };
  },
  computed: {
    frequentProjects() {
      return this.store.getFrequentProjects();
    },
    searchProjects() {
      return this.store.getSearchedProjects();
    },
  },
  methods: {
    toggleFrequentProjectsList(state) {
      this.isLoadingProjects = !state;
      this.isSearchListVisible = !state;
      this.isFrequentsListVisible = state;
    },
    toggleSearchProjectsList(state) {
      this.isLoadingProjects = !state;
      this.isFrequentsListVisible = !state;
      this.isSearchListVisible = state;
    },
    toggleLoader(state) {
      this.isFrequentsListVisible = !state;
      this.isSearchListVisible = !state;
      this.isLoadingProjects = state;
    },
    fetchFrequentProjects() {
      const screenSize = bs.getBreakpointSize();
      if (this.searchQuery && (screenSize !== 'sm' && screenSize !== 'xs')) {
        this.toggleSearchProjectsList(true);
      } else {
        this.toggleLoader(true);
        this.isLocalStorageFailed = false;
        const projects = this.service.getFrequentProjects();
        if (projects) {
          this.toggleFrequentProjectsList(true);
          this.store.setFrequentProjects(projects);
        } else {
          this.isLocalStorageFailed = true;
          this.toggleFrequentProjectsList(true);
          this.store.setFrequentProjects([]);
        }
      }
    },
    fetchSearchedProjects(searchQuery) {
      this.searchQuery = searchQuery;
      this.toggleLoader(true);
      this.service.getSearchedProjects(this.searchQuery)
        .then(res => res.json())
        .then((results) => {
          this.toggleSearchProjectsList(true);
          this.store.setSearchedProjects(results);
        })
        .catch(() => {
          this.isSearchFailed = true;
          this.toggleSearchProjectsList(true);
        });
    },
    logCurrentProjectAccess() {
      this.service.logProjectAccess(this.currentProject);
    },
    handleSearchClear() {
      this.searchQuery = '';
      this.toggleFrequentProjectsList(true);
      this.store.clearSearchedProjects();
    },
    handleSearchFailure() {
      this.isSearchFailed = true;
      this.toggleSearchProjectsList(true);
    },
  },
  created() {
    if (this.currentProject.id) {
      this.logCurrentProjectAccess();
    }

    eventHub.$on('dropdownOpen', this.fetchFrequentProjects);
    eventHub.$on('searchProjects', this.fetchSearchedProjects);
    eventHub.$on('searchCleared', this.handleSearchClear);
    eventHub.$on('searchFailed', this.handleSearchFailure);
  },
  beforeDestroy() {
    eventHub.$off('dropdownOpen', this.fetchFrequentProjects);
    eventHub.$off('searchProjects', this.fetchSearchedProjects);
    eventHub.$off('searchCleared', this.handleSearchClear);
    eventHub.$off('searchFailed', this.handleSearchFailure);
  },
};
</script>

<template>
  <div>
    <search/>
    <loading-icon
      class="loading-animation prepend-top-20"
      size="2"
      v-if="isLoadingProjects"
      :label="s__('ProjectsDropdown|Loading projects')"
    />
    <div
      class="section-header"
      v-if="isFrequentsListVisible"
    >
      {{ s__('ProjectsDropdown|Frequently visited') }}
    </div>
    <projects-list-frequent
      v-if="isFrequentsListVisible"
      :local-storage-failed="isLocalStorageFailed"
      :projects="frequentProjects"
    />
    <projects-list-search
      v-if="isSearchListVisible"
      :search-failed="isSearchFailed"
      :matcher="searchQuery"
      :projects="searchProjects"
    />
  </div>
</template>

error: pathspec 'app/assets/javascripts/projects_dropdown/components/app.vue' did not match any file(s) known to git


feat(component): 返回排序后的数据

feat(component): 返回排序后的数据

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ttaanngg/traffic-report.git/'


Wrap banner contents in inner cont

Wrap banner contents in inner cont

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mplusmuseum/mplusmuseum-stories.git/'


Hide cookies bar when accepting cookies

Hide cookies bar when accepting cookies

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/barprive/barprive.com.git/'


Add map search component

Add map search component

<template>

      <input
        type="text"
        class="map-search__input"
        placeholder="Sueche"
        ref="searchInput"
        v-model="searchTerm"
      >

      <button v-if="hasPlace" class="plain" @click="clearSearch">

      </button>

    <button
      v-if="hasPlace && !location"
      class="map-search__cta"
      @click="addTipp"
    >Reisetipp zu däm Ort gä?</button>
    <tipp-info
      v-if="!hasPlace && showTippInfo"
      v-on:close-tipp-info="toggleTippInfo"
    ></tipp-info>
    <add-tipp
      v-if="hasPlace && location"
      :location="location"
      v-on:close-add-tipp="closeAddTipp"
    ></add-tipp>

</template>

error: pathspec 'src/components/MapSearch.vue' did not match any file(s) known to git


#a11y - aria label for social links

#a11y - aria label for social links

<template>

    <newsletter class=" flex brdr-bottom brdr-c-alto" v-if="!isCheckout" />

Departments

                <router-link class="c-gray-secondary" to="/c/women-20" exact>Women fashion</router-link>

                <router-link class="c-gray-secondary" to="/c/men-11" exact>Men's fashion</router-link>

                <router-link class="c-gray-secondary" to="/" exact>Kidswear</router-link>

                <router-link class="c-gray-secondary" to="/" exact>Home</router-link>

Orders

                <router-link class="c-gray-secondary" to="/order-tracking" exact>Track my order</router-link>

                <router-link class="c-gray-secondary" to="/my-account" exact>My account</router-link>

                <router-link class="c-gray-secondary" to="/delivery" exact>Delivery</router-link>

                <router-link class="c-gray-secondary" to="/returns" exact>Return policy</router-link>

Help

                <router-link class="c-gray-secondary" to="/customer-service" exact>Customer service</router-link>

                <router-link class="c-gray-secondary" to="/size-guide" exact>Size guide</router-link>

                <router-link class="c-gray-secondary" to="/contact" exact>Contact us</router-link>

About us

                <router-link class="c-gray-secondary" to="/about-us" exact>About us</router-link>

                <router-link class="c-gray-secondary" to="/store-locator" exact>Store locator</router-link>

              <svg xmlns="http://www.w3.org/2000/svg" class="facebook icon" width="40" height="40" viewBox="0 0 40 40" fill="#BDBDBD">
                <path d="M20,0 C8.9541,0 0,8.95435 0,20 C0,31.0457 8.9541,40 20,40 C31.0459,40 40,31.0457 40,20 C40,8.95435 31.0459,0 20,0 Z M22.085,20.8785 L22.085,31.7595 L17.5825,31.7595 L17.5825,20.8789 L15.3335,20.8789 L15.3335,17.1293 L17.5825,17.1293 L17.5825,14.8779 C17.5825,11.819 18.8525,10 22.4609,10 L25.4653,10 L25.4653,13.7501 L23.5874,13.7501 C22.1826,13.7501 22.0898,14.2742 22.0898,15.2521 L22.085,17.1288 L25.4863,17.1288 L25.0884,20.8785 L22.085,20.8785 Z"/>
              </svg>

              <svg xmlns="http://www.w3.org/2000/svg" class="instagram icon" width="40" height="40" viewBox="0 0 40 40" fill="#BDBDBD">
                <path d="M20,0 C8.9541,0 0,8.95435 0,20 C0,31.0457 8.9541,40 20,40 C31.0459,40 40,31.0457 40,20 C40,8.95435 31.0459,0 20,0 Z M15.603,9.39783 C16.7407,9.34607 17.104,9.33337 20.001,9.33337 C22.8955,9.33337 23.2578,9.34607 24.3955,9.39783 C25.5312,9.44983 26.3066,9.62964 26.9868,9.89343 C27.689,10.1656 28.2822,10.53 28.8755,11.1234 C29.4692,11.7163 29.8335,12.3114 30.1069,13.0129 C30.3691,13.6912 30.5488,14.4663 30.6025,15.6019 C30.6533,16.7396 30.667,17.1033 30.667,20.0001 C30.667,22.8971 30.6533,23.2598 30.6025,24.3976 C30.5488,25.5327 30.3691,26.308 30.1069,26.9865 C29.8335,27.6877 29.4692,28.283 28.8755,28.8759 C28.2832,29.4691 27.689,29.8345 26.9873,30.1069 C26.3086,30.3707 25.5327,30.5505 24.397,30.6025 C23.2593,30.6543 22.897,30.6669 20,30.6669 C17.103,30.6669 16.7397,30.6543 15.6021,30.6025 C14.4668,30.5505 13.6914,30.3707 13.0127,30.1069 C12.3115,29.8345 11.7163,29.4691 11.1235,28.8759 C10.5308,28.283 10.166,27.6877 9.89355,26.9862 C9.62988,26.308 9.4502,25.5328 9.39795,24.3973 C9.34619,23.2595 9.3335,22.8971 9.3335,20.0001 C9.3335,17.1033 9.34668,16.7395 9.39795,15.6017 C9.44873,14.4666 9.62891,13.6912 9.89307,13.0127 C10.1665,12.3114 10.5312,11.7163 11.1245,11.1234 C11.7173,10.5303 12.3125,10.1658 13.0142,9.89343 C13.6924,9.62964 14.4673,9.44983 15.603,9.39783 Z"/>
                <path d="M7.7876,1.2868e-05 L8.74463,1.2868e-05 C11.5928,1.2868e-05 11.9302,0.0102668 13.0547,0.0612922 C14.0947,0.1089 14.6592,0.282606 15.0352,0.428724 C15.5332,0.621961 15.8882,0.853162 16.2612,1.22645 C16.6343,1.59974 16.8657,1.95534 17.0591,2.45314 C17.2051,2.82875 17.3794,3.3932 17.4268,4.43312 C17.4775,5.55763 17.4888,5.8954 17.4888,8.74208 C17.4888,11.5888 17.4775,11.9265 17.4268,13.051 C17.3789,14.0911 17.2051,14.6555 17.0591,15.031 C16.8657,15.5288 16.6343,15.8833 16.2612,16.2564 C15.8877,16.6298 15.5332,16.8609 15.0352,17.0542 C14.6597,17.2008 14.0947,17.3742 13.0547,17.4218 C11.9302,17.4728 11.5928,17.4839 8.74463,17.4839 C5.89648,17.4839 5.55859,17.4728 4.43408,17.4218 C3.39404,17.3738 2.82959,17.2 2.45361,17.054 C1.95557,16.8606 1.6001,16.6295 1.22705,16.2561 C0.853516,15.8828 0.622559,15.5282 0.428711,15.0302 C0.282715,14.6546 0.108887,14.0901 0.0615234,13.0502 C0.0102539,11.9257 0,11.5879 0,8.73939 C0,5.891 0.0102539,5.55494 0.0615234,4.43043 C0.108887,3.39052 0.282715,2.82606 0.428711,2.44996 C0.62207,1.95228 0.853516,1.59669 1.22705,1.22328 C1.6001,0.849988 1.95557,0.618909 2.45361,0.425062 C2.82959,0.278455 3.39404,0.105115 4.43408,0.0573859 C5.41846,0.0128303 5.7998,-0.000475413 7.7876,1.2868e-05 Z M14.438,1.77113 C13.7314,1.77113 13.1582,2.34376 13.1582,3.05067 C13.1582,3.75734 13.7314,4.3307 14.438,4.3307 C15.145,4.3307 15.7183,3.75734 15.7183,3.05067 C15.7183,2.34401 15.145,1.77064 14.438,1.77113 Z M3.2666,8.74452 C3.2666,5.71937 5.71924,3.26674 8.74463,3.26674 C11.7695,3.26674 14.2212,5.71937 14.2212,8.74452 C14.2212,11.7697 11.7695,14.2213 8.74463,14.2213 C5.71924,14.2213 3.2666,11.7697 3.2666,8.74452 Z" transform="translate(11.26 11.26)"/>
                <path stroke="#FFF" stroke-width="2" d="M4.55499342,0 C7.07049549,0 9.10999966,2.03920952 9.10999966,4.55499342 C9.10999966,7.07049549 7.07049549,9.10999966 4.55499342,9.10999966 C2.03920952,9.10999966 0,7.07049549 0,4.55499342 C0,2.03920952 2.03920952,2.02282451e-15 4.55499342,2.02282451e-15 L4.55499342,0 Z" transform="translate(15.45 15.44)"/>
              </svg>

              <svg xmlns="http://www.w3.org/2000/svg" class="pinterest icon" width="40" height="40" viewBox="0 0 40 40" fill="#BDBDBD">
                <path d="M0,19.9989 C0,31.0437 8.95264,40 20,40 C31.0454,40 40,31.0437 40,19.9989 C40,8.9541 31.0454,0 20,0 C8.95264,0 0,8.9541 0,19.9989 Z M13.3696,36.8771 C6.62793,34.2357 1.85059,27.6766 1.85059,19.9991 C1.85059,9.98682 9.96533,1.87463 19.9761,1.87463 C29.9868,1.87463 38.1016,9.98682 38.1016,19.9991 C38.1016,30.0094 29.9868,38.1238 19.9761,38.1238 C18.106,38.1238 16.3042,37.8409 14.6099,37.314 C15.3467,36.1101 16.4521,34.1372 16.8613,32.5627 C17.082,31.7145 17.9902,28.255 17.9902,28.255 C18.5815,29.3817 20.3081,30.3372 22.146,30.3372 C27.6108,30.3372 31.5508,25.3096 31.5508,19.0631 C31.5508,13.0758 26.6641,8.59448 20.3765,8.59448 C12.5552,8.59448 8.40137,13.847 8.40137,19.5643 C8.40137,22.2206 9.81543,25.5323 12.0776,26.5862 C12.4224,26.7448 12.6069,26.6741 12.686,26.342 L12.8516,25.6682 C12.9653,25.2057 13.1074,24.6292 13.1895,24.2877 C13.2324,24.1035 13.2109,23.9471 13.063,23.7672 C12.3135,22.8589 11.7158,21.1881 11.7158,19.6307 C11.7158,15.6335 14.7427,11.7649 19.8989,11.7649 C24.3525,11.7649 27.4697,14.7981 27.4697,19.1381 C27.4697,24.0414 24.9932,27.4388 21.7715,27.4388 C19.9932,27.4388 18.6606,25.9694 19.0869,24.1635 C19.272,23.3851 19.519,22.5848 19.7598,21.8065 C20.1851,20.4301 20.5889,19.1227 20.5889,18.1292 C20.5889,16.7367 19.8413,15.5757 18.2964,15.5757 C16.4756,15.5757 15.0166,17.4564 15.0166,19.9778 C15.0166,21.5823 15.5586,22.6683 15.5586,22.6683 C15.5586,22.6683 13.7612,30.2621 13.4336,31.6759 C13.0693,33.244 13.2109,35.444 13.3696,36.8771 Z"/>
              </svg>

              <svg xmlns="http://www.w3.org/2000/svg" class="youtube icon" width="40" height="40" viewBox="0 0 40 40" fill="#BDBDBD">
                <path d="M20,0 C8.9541,0 0,8.95435 0,20 C0,31.0457 8.9541,40 20,40 C31.0459,40 40,31.0457 40,20 C40,8.95435 31.0459,0 20,0 Z M28.335,13.1244 C29.2529,13.3763 29.9756,14.1185 30.2212,15.061 C30.667,16.7692 30.667,20.3333 30.667,20.3333 C30.667,20.3333 30.667,23.8973 30.2212,25.6056 C29.9756,26.5481 29.2529,27.2903 28.335,27.5424 C26.6714,28 20,28 20,28 C20,28 13.3291,28 11.6655,27.5424 C10.7476,27.2903 10.0244,26.5481 9.7793,25.6056 C9.3335,23.8973 9.3335,20.3333 9.3335,20.3333 C9.3335,20.3333 9.3335,16.7692 9.7793,15.061 C10.0244,14.1185 10.7476,13.3763 11.6655,13.1244 C13.3291,12.6666 20,12.6666 20,12.6666 C20,12.6666 26.6714,12.6666 28.335,13.1244 Z"/>
                <polygon points="0 6.667 0 0 5.333 3.333" transform="translate(18 17.33)"/>
              </svg>

          United States (US)

              <router-link
                class="c-lightgray-secondary mr10 underline"
                to="/legal"
                exact
              >
                Legal notice
              </router-link>

              <router-link
                class="c-lightgray-secondary underline"
                to="/privacy"
                exact
              >
                Privacy policy
              </router-link>

</template>


Fix incorrect youtube links

Fix incorrect youtube links

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ICJIA/icjia-gata.git/'


增加loading组件

增加loading组件

error: pathspec 'src/components/loading.vue' did not match any file(s) known to git


Add new mobile menu

Add new mobile menu

<template>

    <v-navigation-drawer
      app
      class="wallet-sidemenu custom-scroll-bar"
      permanent
      :src="background"
      width="300"
      :dark="$vuetify.theme.dark"
    >
      <template #prepend>

            <router-link :to="{ name: 'Dashboard' }">

            </router-link>

          <balance-card />
          <mew-super-button
            font-class="mew-body"
            class="mt-3 px-3"
            title="Buy ETH here"
            color-theme="outline"
            style="height: 46px; border-radius: 5px"
            @click.native="openSimplex"
          >

            <template #contentSlot>

            </template>
          </mew-super-button>

      </template>

      <v-list>
        <template v-for="(item, idx) in sectionOne">
          <v-list-item
            v-if="!item.children"
            :key="item + idx + 1"
            dense
            :to="item.route"
            class="py-2"
          >
            <v-list-item-icon class="mx-3">

            </v-list-item-icon>

            <v-list-item-content>
              <v-list-item-title
                class="white--text font-weight-regular mew-body"
                v-text="item.title"
              />
            </v-list-item-content>
          </v-list-item>

          <v-list-group
            v-if="item.children"
            :key="item + idx + 2"
            prepend-icon=""
          >
            <template #activator>
              <v-list-item-icon class="mx-3">

              </v-list-item-icon>
              <v-list-item-content>
                <v-list-item-title
                  class="white--text font-weight-regular mew-body"
                  v-text="item.title"
                ></v-list-item-title>
              </v-list-item-content>
            </template>
            <v-list-item
              v-for="child in item.children"
              :key="child.title"
              dense
              class="pl-4"
              :to="child.route"
            >
              <v-list-item-content>
                <v-list-item-title
                  class="pl-13 white--text font-weight-regular mew-body"
                  v-text="child.title"
                ></v-list-item-title>
              </v-list-item-content>
            </v-list-item>
          </v-list-group>
        </template>
      </v-list>

      <v-divider class="my-4 mx-6" />

      <v-list>
        <v-list-item
          v-for="(item, idx) in sectionTwo"
          :key="item + idx"
          dense
          @click="item.fn()"
        >
          <v-list-item-icon class="mx-3">

          </v-list-item-icon>

          <v-list-item-content>
            <v-list-item-title
              class="white--text mew-body font-weight-regular"
              v-text="item.title"
            />
          </v-list-item-content>
        </v-list-item>
      </v-list>
      <template #append>

          <theme-switch />

v{{ version }}

      </template>
    </v-navigation-drawer>
    <mew-popup
      :is-open="showLogoutPopup"
      :title="$t('interface.menu.logout')"
      :button-left="logout.btnLeft"
      :button-right="logout.btnRight"
      popup-type="confirm"
      @onClick="onLogout"
    ></mew-popup>
    <module-settings
      :on-settings="onSettings"
      @closeSettings="toggleSettings"
    />

</template>

error: pathspec 'src/views/components-wallet/TheWalletMobileMenu.vue' did not match any file(s) known to git


remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/sharkspeed/dororis.git/'


Style fonts

Style fonts

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/JosefFriedrich-nodejs/baldr.git/'


Changed total time color

Changed total time color

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/digitalideastudio/timeragent.git/'


Adding link to Balance method

Adding link to Balance method

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/eoinmurphy/field-guide.git/'


List component

List component

<script>
  export default {
    beforeDestroy() {
      const self = this;
      if (!(self.virtual && self.virtualInit && self.f7VirtualList)) return;
      if (self.f7VirtualList.destroy) self.f7VirtualList.destroy();
    },
    watch: {
      'virtualListParams.items': function onItemsChange() {
        // Items Updated
        const self = this;
        if (!(self.virtual && self.virtualInit && self.f7VirtualList)) return;
        self.f7VirtualList.replaceAllItems(self.virtualListParams.items);
      },
    },
    render(c) {
      const self = this;

      const listChildren = [];
      const ulChildren = [];

      if (self.$slots.default) {
        for (let i = 0; i < self.$slots.default.length; i += 1) {
          const tag = self.$slots.default[i].tag;
          if (tag && !(tag === 'li' || tag.indexOf('list-item') >= 0 || tag.indexOf('list-button') >= 0)) {
            listChildren.push(self.$slots.default[i]);
          } else {
            ulChildren.push(self.$slots.default[i]);
          }
        }
      }
      const blockEl = c(
        self.form ? 'form' : 'div',
        {
          staticClass: 'list',
          class: {
            inset: self.inset,
            'tablet-inset': self.tabletInset,
            'media-list': self.mediaList,
            'simple-list': self.simpleList,
            'links-list': self.linksList,
            sortable: self.sortable,
            'accordion-list': self.accordionList,
            'contacts-block': self.contactsList,
            'virtual-list': self.virtualList,
            tab: self.tab,
            'tab-active': self.tabActive,
            'no-hairlines': self.noHairlines,
            'no-hairlines-between': self.noHairlinesBetween,
            'form-store-data': self.formStoreData,
          },
          on: {
            'sortable:enable': self.onSortableEnable,
            'sortable:disable': self.onSortableDisable,
            'sortable:sort': self.onSortableSort,
            'tab:show': self.onTabShow,
            'tab:hide': self.onTabHide,
          },
        },
        [
          ulChildren.length > 0 ? [c('ul', {}, ulChildren), listChildren] : listChildren,
        ]
      );
      return blockEl;
    },
    props: {
      inset: Boolean,
      tabletInset: Boolean,
      mediaList: Boolean,
      grouped: Boolean,
      sortable: Boolean,
      accordionList: Boolean,
      contactsList: Boolean,

      noHairlines: Boolean,
      noHairlinesBetween: Boolean,

      // Tab
      tab: Boolean,
      tabActive: Boolean,

      // Form
      form: Boolean,
      formStoreData: Boolean,

      // Virtual List
      virtualList: Boolean,
      virtualListInit: {
        type: Boolean,
        default: true,
      },
      virtualListParams: Object,
    },
    methods: {
      onSortableEnable(event) {
        this.$emit('sortable:enable', event);
      },
      onSortableDisable(event) {
        this.$emit('sortable:disable', event);
      },
      onSortableSort(event) {
        this.$emit('sortable:sort', event, event.detail);
      },
      onTabShow(e) {
        this.$emit('tab:show', e);
      },
      onTabHide(e) {
        this.$emit('tab:hide', e);
      },
      onF7Ready(f7) {
        const self = this;
        // Init Virtual List
        if (!(self.virtual && self.virtualInit)) return;
        const $$ = self.$$;
        const $el = $$(self.$el);
        const templateScript = $el.find('script');
        let template = templateScript.html();
        if (!template && templateScript.length > 0) {
          template = templateScript[0].outerHTML;
          template = /\<script type="text\/template7"\>(.*)<\/script>/.exec(template)[1];
        }
        if (!template && !self.virtualRenderItem && !self.virtualRenderExternal) return;
        if (template) template = self.$t7.compile(template);

        self.f7VirtualList = f7.virtualList(self.$el, {
          items: self.virtualItems || [],
          template,
          height: self.virtualHeight || undefined,
          cols: self.virtualCols,
          rowsBefore: self.virtualRowsBefore || undefined,
          rowsAfter: self.virtualRowsAfter || undefined,
          showFilteredItemsOnly: self.virtualFilteredOnly,
          searchByItem: self.virtualSearchByItem,
          searchAll: self.virtualSearchAll,
          renderItem: self.virtualRenderItem,
          renderExternal: self.virtualRenderExternal,
          emptyTemplate: self.virtualEmptyTemplate,
          onItemBeforeInsert(list, item) {
            self.$emit('virtual:itembeforeinsert', list, item);
          },
          onBeforeClear(list, fragment) {
            self.$emit('virtual:beforeclear', list, fragment);
          },
          onItemsBeforeInsert(list, fragment) {
            self.$emit('virtual:itemsbeforeinsert', list, fragment);
          },
          onItemsAfterInsert(list, fragment) {
            self.$emit('virtual:itemsafterinsert', list, fragment);
          },
        });
      },
    },
  };
</script>

error: pathspec 'src/components/list.vue' did not match any file(s) known to git


Fix issue

Fix issue

<template>

    <el-row gutter="10" class="game-header">
      <el-col :xs="24" :sm="24" :md="1" :lg="1":xl="1">

      </el-col>

    </el-row>

      <el-row gutter="50">
        <el-col :xs="24" :sm="24" :md="{span: 11, offset: 1}" :lg="{span: 11, offset: 1}" :xl="{span: 11, offset: 1}">
          <button class="answer-button" v-bind:style="{ 'background-color': colors[0] }" v-bind:class="{ 'active-button': playing, 'hide': !displayPropositions }" v-on:click="displayToggle(0)" :disabled="answersEnabled == false">{{ answers[0] }}</button>
        </el-col>
        <el-col :xs="24" :sm="24" :md="{span: 11, offset: 0}" :lg="{span: 11, offset: 0}" :xl="{span: 11, offset: 0}">
          <button class="answer-button" v-bind:style="{ 'background-color': colors[1] }" v-bind:class="{ 'active-button': playing, 'hide': !displayPropositions }" v-on:click="displayToggle(1)" :disabled="answersEnabled == false">{{ answers[1] }}</button>
        </el-col>
      </el-row>
    <el-row gutter="50">
      <el-col :xs="24" :sm="24" :md="{span: 11, offset: 1}" :lg="{span: 11, offset: 1}" :xl="{span: 11, offset: 1}">
          <button class="answer-button" v-bind:style="{ 'background-color': colors[2] }" v-bind:class="{ 'active-button': playing, 'hide': !displayPropositions }" v-on:click="displayToggle(2)" :disabled="answersEnabled == false">{{ answers[2] }}</button>
        </el-col>
      <el-col :xs="24" :sm="24" :md="{span: 11, offset: 0}" :lg="{span: 11, offset: 0}" :xl="{span: 11, offset: 0}">
          <button class="answer-button" v-bind:style="{ 'background-color': colors[3] }" v-bind:class="{ 'active-button': playing, 'hide': !displayPropositions }" v-on:click="displayToggle(3)" :disabled="answersEnabled == false">{{ answers[3] }}</button>
        </el-col>
      </el-row>

{{displayedAnswer}}

{{ skip }}

    <vue-progress-bar></vue-progress-bar>

</template>


Missing file from previous commit

Missing file from previous commit

<template>

Your IRC client.

Add your networks. Join your channels.

They will be here when you come back.

        <button @click="addNetwork" class="u-button u-button-primary">Add A Network</button>

        0" @click.stop="toggleStateBrowser" class="u-link kiwi-personal-existing-networks">Saved networks

</template>

error: pathspec 'src/components/startups/Personal.vue' did not match any file(s) known to git


Don't try to render null dates

Don't try to render null dates

<template>

  <immersive-full-screen
    :backPageLink="backPageLink"
    :backPageText="$tr('backTo', { title: exam.title })"
  >
    <template>

        <page-status
          :contentName="exam.title"
          :userName="userName"
          :questions="examAttempts"
          :completionTimestamp="completionTimestamp"
          :completed="closed"/>

          <attempt-log-list
            :attempt-logs="examAttempts"
            :selectedQuestionNumber="questionNumber"
            @select="navigateToAttempt"
          />

          <interaction-list
            :interactions="currentInteractionHistory"
            :attemptNumber="currentAttempt.questionNumber"
            :selectedInteractionIndex="selectedInteractionIndex"
            @select="navigateToInteraction"
          />

          <content-renderer
            v-if="currentInteraction"
            class="content-renderer"
            :id="exercise.pk"
            :itemId="itemId"
            :allowHints="false"
            :kind="exercise.kind"
            :files="exercise.files"
            :contentId="exercise.content_id"
            :channelId="channelId"
            :available="exercise.available"
            :answerState="currentInteraction.answer"
            :extraFields="exercise.extra_fields"
            :assessment="true"/>
          <content-renderer
            v-else
            class="content-renderer"
            :id="exercise.pk"
            :itemId="itemId"
            :allowHints="false"
            :kind="exercise.kind"
            :files="exercise.files"
            :contentId="exercise.content_id"
            :channelId="channelId"
            :available="exercise.available"
            :extraFields="exercise.extra_fields"
            :assessment="true"/>

    </template>
  </immersive-full-screen>

</template>

<template>

  <immersive-full-screen
    :backPageLink="backPageLink"
    :backPageText="$tr('backTo', { title: exam.title })"
  >
    <template>

        <page-status
          :contentName="exam.title"
          :userName="userName"
          :questions="examAttempts"
          :completionTimestamp="new Date(completionTimestamp)"
          :completed="closed"/>

          <attempt-log-list
            :attempt-logs="examAttempts"
            :selectedQuestionNumber="questionNumber"
            @select="navigateToAttempt"
          />

          <interaction-list
            :interactions="currentInteractionHistory"
            :attemptNumber="currentAttempt.questionNumber"
            :selectedInteractionIndex="selectedInteractionIndex"
            @select="navigateToInteraction"
          />

          <content-renderer
            v-if="currentInteraction"
            class="content-renderer"
            :id="exercise.pk"
            :itemId="itemId"
            :allowHints="false"
            :kind="exercise.kind"
            :files="exercise.files"
            :contentId="exercise.content_id"
            :channelId="channelId"
            :available="exercise.available"
            :answerState="currentInteraction.answer"
            :extraFields="exercise.extra_fields"
            :assessment="true"/>
          <content-renderer
            v-else
            class="content-renderer"
            :id="exercise.pk"
            :itemId="itemId"
            :allowHints="false"
            :kind="exercise.kind"
            :files="exercise.files"
            :contentId="exercise.content_id"
            :channelId="channelId"
            :available="exercise.available"
            :extraFields="exercise.extra_fields"
            :assessment="true"/>

    </template>
  </immersive-full-screen>

</template>


Make 'Show hint' button bigger

Make 'Show hint' button bigger

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/tum-rt/web-quiz.git/'


reset scss

reset scss

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/NewDadaFE/newdada-daojia.git/'


update

update

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/iview/iview-doc.git/'


Missing table.vue

Missing table.vue

<template>

                <template v-for="field in fields">
                    {{field.label}}
                </template>

                <template v-for="(field,key) in fields">
                    {{item[key]}}
                </template>

</template>

error: pathspec 'components/table.vue' did not match any file(s) known to git


[breadcrumb] aria-current binding

[breadcrumb] aria-current binding

<template>

        <slot></slot>

</template>

<template>

        <slot></slot>

</template>


Update header logo click behaviour

Update header logo click behaviour


Make updating links be reflected on the displayed person data.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ux4c/ux4c-admin.git/'


Update form handling

Update form handling

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/moleeternal/chrome-coins.git/'


添加了头部的操作条

添加了头部的操作条

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/xunull/noadmin.git/'


ACTUALLY fix login flow

ACTUALLY fix login flow

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/JonathanTroyer/OC-Summer-2017-Table-Web.git/'


update scroll to top button

update scroll to top button

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mubaidr/gh-pages.git/'


Attempt to remove iOS playback button for inline videos

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mplusmuseum/mplusmuseum-stories.git/'


Rename image column to attachment

Rename image column to attachment

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/joshuamabina/vue-bora.git/'


feat(component): 使用highcharts带范围的折线图

feat(component): 使用highcharts带范围的折线图

require('highcharts/highcharts-more')(Highcharts);

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ttaanngg/traffic-report.git/'


Add capital letters to cocktail page titles

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/barprive/barprive.com.git/'


Add a thought as comment

Add a thought as comment

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/egoconf/egoconf.git/'


Create a text input component.

Create a text input component.

<template>
  <input
    type="text"
    :id="id"
    :name="name"
    :placeholder="placeholder"
    :autofocus="autofocus"
    v-model="email"
    @change="$emit('change')"
    @input="$emit('input', email)">
</template>

<script>
export default {
  name: 'text-input',
  watch: {
    value(newValue) {
      this.email = newValue;
    },
  },
  data() {
    return {
      email: this.value,
    };
  },
  props: {
    name: {
      type: String,
      value: '',
    },
    placeholder: {
      type: String,
      value: '',
    },
    id: {
      type: String,
      value: '',
    },
    autofocus: {
      type: Boolean,
      value: false,
    },
  },
};
</script>

<style lang="scss" scoped>
input {
  flex: 1 1 auto;
  padding: 4px;
  font: inherit;
  color: inherit;
  border: 1px solid #2c3e50;
  border-radius: 4px;
}
</style>

error: pathspec 'src/components/ui/TextInput.vue' did not match any file(s) known to git


Fix MasterRenderer

Fix MasterRenderer

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/JosefFriedrich-nodejs/baldr.git/'


client(Item): add Item component

client(Item): add Item component

<template>
  <li class="menu-section-item">
    <slot></slot>
    </li>
</template>

<script>
  export default {
    name: 'Item'
  };
</script>

<style lang="sass" rel="stylesheet/scss" scoped>
  .menu-section-item {
    margin-bottom: 5px;
  }
</style>

error: pathspec 'client/src/components/Layout/Navbar/Section/Item/Item.vue' did not match any file(s) known to git


Cleans up styles

Cleans up styles

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/NathanielDavid/Sumie.git/'


update

update


修改侧边栏三级菜单样式

修改侧边栏三级菜单样式

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/wuazhu/chinapost.git/'


Add new header for checkout

Add new header for checkout

<template>

                        <hamburger-icon class="p15 icon bg-lightgray"/>

                        <logo width="36px" height="41px"/>

                        <search-icon class="p15 icon hidden-xs" />
                        <wishlist-icon class="p15 icon hidden-xs" />
                        <microcart-icon class="p15 icon" />
                        <account-icon class="p15 icon hidden-xs" />

                        <router-link to="/" class="c-lightgray-secondary">Return to shopping</router-link>

                    <logo width="36px" height="41px"/>

                        Login to your account

</template>

<template>

                        <hamburger-icon class="p15 icon bg-lightgray"/>

                        <logo width="36px" height="41px"/>

                        <search-icon class="p15 icon hidden-xs" />
                        <wishlist-icon class="p15 icon hidden-xs" />
                        <microcart-icon class="p15 icon" />
                        <account-icon class="p15 icon hidden-xs" />

                        <router-link to="/">Return to the shopping</router-link>

</template>


update

update

{{{{raw}}}}
<template>
  <v-container>

Users

Username: {{ user.username }}

Email: {{ user.email }}

Must be authenticated to view all users.

      <v-btn router :to="{ name: 'users-auth-sign-in' }">Sign in</v-btn>

  </v-container>
</template>
{{{{/raw}}}}

error: pathspec 'template/src/client/pages/users/index.vue' did not match any file(s) known to git


添加路由动态改变的监听

添加路由动态改变的监听

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/www295686243/LavaCms.git/'


Simplify dynamic component on manage-content-page

<template>

    <template v-if="canManageContent">
      <component
        v-if="wizardPageName!==''"
        :is="wizardComponent"
      />

      <subpage-container>
        <task-progress
          v-if="tasksInQueue"
          v-bind="firstTask"
          @cleartask="clearFirstTask"
        />

            {{ $tr('title') }}

            <k-button
              :text="$tr('import')"
              class="button"
              @click="openWizard('import')"
              :primary="true"
            />
            <k-button
              v-if="deviceHasChannels"
              :text="$tr('export')"
              class="button"
              :primary="true"
              @click="openWizard('export')"
            />

        <channels-grid />

      </subpage-container>
    </template>

    <auth-message
      v-else
      :details="$tr('noAccessDetails')"
    />

</template>


remove example

remove example

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/praneetloke/vue-material.git/'


Add 'anchored-heading.vue'.

Add 'anchored-heading.vue'.

<script>
export default {
  name: 'anchored-heading',
  props: {
    level: {
      type: Number,
      required: true,
    }
  },
  render(createElement) {
    // create kebabCase id
    let headingId = this.getChildrenTextContent(this.$slots.default)
      .toLowerCase()
      .replace(/\W+/g, '-')
      .replace(/(^\-|\-$)/g, '');

    return createElement(
      'h' + this.level,
      {
        attrs: {
          id: headingId,
        }
      },
      [
        createElement('a', {
          attrs: {
            name: headingId,
            href: '#' + headingId
          }
        }, this.$slots.default)
      ]
    );
  },
  methods: {
    /**
     * get text content from children nodes.
     *
     * @param  {Array} children  An array of VNodes.
     * @return {String}
     */
    getChildrenTextContent(children) {
      return children.map(node => {
        return node.children
          ? this.getChildrenTextContent(node.children)
          : node.text;
      }).join('');
    }
  }
}
</script>

error: pathspec 'src/js/components/anchored-heading.vue' did not match any file(s) known to git


应为blue

应为blue

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/iview/iview-doc.git/'


Improve navigation design.

Improve navigation design.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ux4c/ux4c-admin.git/'


to fazendo um rap pra voce... demorei muito pra dizer... trago vergos que mata a sede!

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/lucaslimax/curriculo_gratis.git/'


debounce = 0 on mdchip input

debounce = 0 on mdchip input

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/jaceks-iRonin/vue-material-test.git/'


delete more names

delete more names

<template>

    <modal btntext="Edit">

User edit

Username: <input type="text" v-model="username" placeholder="Please type in your username.">

Password: <input type="text" v-model="password" placeholder="Please type in your password.">

First name: <input type="text" v-model="firstName" placeholder="Please type in your first name.">

Last name: <input type="text" v-model="lastName" placeholder="Please type in your last name.">

Learner <input type="radio" value="learner" v-model="role">

Admin <input type="radio" value="admin" v-model="role">

        <button class="confirm-btn" type="button" @click="editUser">Confirm</button>

    </modal>

</template>

<template>

    <modal btntext="Edit">

User edit

Username: <input type="text" v-model="username" placeholder="Please type in your username.">

Password: <input type="text" v-model="password" placeholder="Please type in your password.">

First name: <input type="text" v-model="firstName" placeholder="Please type in your first name.">

Last name: <input type="text" v-model="lastName" placeholder="Please type in your last name.">

Learner <input type="radio" name="picked" value="learner" v-model="role">

Admin <input type="radio" name="picked" value="admin" v-model="role">

        <button class="confirm-btn" type="button" @click="editUser">Confirm</button>

    </modal>

</template>


move beforeRouteEnter before components

move beforeRouteEnter before components

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/notadd/administration.git/'


Another ES6 export.

Another ES6 export.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/codeweavers/Consign.git/'


Added file upload box again

Added file upload box again

<template>

  <VContainer fluid>
    <VLayout wrap align-center justify-center class="file-upload-wrapper">
      <VSpacer />
      <VFlex xs12 md6>
        <FileStorage showProgress />
      </VFlex>
      <VFlex xs12>
        <VCard flat style="border: 1px solid lightgrey; height: 100%;">
          <Uploader fill allowMultiple @uploading="handleUploading">
            <template #default="{openFileDialog}">
              <VLayout align-center fill-height>
                <VCardText class="text-center align-center text-xs-center">

                    {{ $tr('uploadToText', {title: parentTitle}) }}

                    {{ $tr('dropHereText') }}

                  <VBtn color="primary" @click="openFileDialog">
                    {{ $tr('chooseFilesButton') }}
                  </VBtn>

                    {{ $tr('acceptsHelp', {extensions: acceptedFiles}) }}

                </VCardText>
              </VLayout>
            </template>
          </Uploader>
        </VCard>
      </VFlex>
    </VLayout>
  </VContainer>

</template>

error: pathspec 'contentcuration/contentcuration/frontend/channelEdit/views/files/FileUploadDefault.vue' did not match any file(s) known to git


fix bug: Unexpected trailing comma

fix bug: Unexpected trailing comma


update location widget

update location widget

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/nstaeger/pagekit.git/'


add legal text component for display below results table

<template>

LEGAL DISCLAIMER FOR WELL DRILLER:

By listing persons as well drillers in this Register, the Province of British Columbia (B.C.) in no way guarantees, or may be held liable, for any work performed by the person.

The drillers listed in this Register are sorted by alphabetical order in no way reflects any order of preference, special favour or any other bias on behalf of the Province of B.C..

Pursuant to Part 2, Section 7 of the Groundwater Protection Regulation (GWPR), the Comptroller must establish and maintain a register of well drillers who are authorized to operated in B.C.. The list of well drillers whose names in the Register, must be made available to the public during normal business hours, or be posted on a publicly available website. A person wishing to be recognized as a well driller in B.C. and wanting to be listed in the Register may apply to the Comptroller pursuant to Section 8 of the GWPR.

Pursuant to Section 14 of the GWPR:

a registered well driller who is classified as a water well driller is qualified in respect of constructing any class of well other than closed-loop geoexchange wells;

a registered well driller who is classified as a geoexchange driller is qualified in respect of constructing closed-loop geoexchange wells;

a registered well driller who is classified as a geotechnical/environmental driller is qualified in respect of constructing monitoring wells, geotechnical wells and remediation wells.

a registered well driller is qualified in respect of decommissioning or deactivating any class of well.

Pursuant to Section 14 of the GWPR, in relation to water supply wells, dewatering wells, injection wells and remediation wells, a registered water well driller is qualified in respect of installing, maintaining, repairing, removing or testing a well pump or a well head; qualified in respect of conducting a flow test of a well, qualified in respect of disinfecting a well pump; qualified in respect of disinfecting a well.

The Comptroller must remove from the Register of well drillers any person who:

fails to meet a requirement for registration,

fails to maintain a requirement for registration, including any requirement for maintaining a certificate issued by another province or territory of Canada,

is no longer actively working in Canada as a well driller.

A person listed as a well driller in this Register must advise the Comptroller in writing within 60 days of any changes to the information included in the Register or if they are no longer actively working in B.C. as a well driller.

The person whose name appears in this Register should, in the course of their duties as a well driller in British Columbia, carry with them the well driller identification card issued to them by the Comptroller and must present it upon request to the Comptroller, the Regional Water Manager, an Engineer or an Officer under the Water Sustainability Act (WSA) , or a Drinking
      Water Officer under the Drinking Water Protection Act, as proof of their qualifications as a well driller pursuant to Section 51 of the WSA.

*‘Certificate issued by’: Explanation of abbreviations

Province of BC: Certificate issued by the Industry Training Authority or the Advanced Education Ministry of the Province of B.C.

CGWA : Certificate issued by the Canadian Ground Water Association

N/A – grand-fathered: Not applicable. Well drillers with this designation were registered under the grand-parenting provision of the former Ground Water Protection Regulation (2004). That provision allowed drillers to be registered at the discretion of the Deputy Comptroller of Water Rights, based on proof of experience.

LEGAL DISCLAIMER FOR WELL PUMP INSTALLER:

By listing persons as well pump installers in this Register, the Province of British Columbia (B.C.) in no way guarantees, or may be held liable, for any work performed by the person.

The pump installers listed in this Register are sorted by alphabetical order and in no way reflects any order of preference, special favour or any other bias on behalf of the Province of B.C..

Pursuant to Part 2, Section 7 of the Groundwater Protection Regulation (GWPR), the Comptroller must establish and maintain a register of well pump installers who are authorized to operated in (B.C.). The list of well pump installers whose names are in the Register, must be made available to the public during normal business hours, or be posted on a publicly available website. A person wishing to be recognized as a well pump installer in B.C. and wanting to be listed in the Register may apply to the Comptroller pursuant to Section 8 of the GWPR.

Pursuant to Section 14 of the GWPR, a registered well pump installer is qualified in respect of:

decommissioning or deactivating any class of well,

installing, maintaining, repairing, removing or testing a well pump or well head,

conducting a flow test of a well,

disinfecting a well pump

disinfecting a well.

The Comptroller must remove from the Register of well pump installers any person who:

fails to meet a requirement for registration,

fails to maintain a requirement for registration, including any requirement for maintaining a certificate issued by another province or territory of Canada,

is no longer actively working in Canada as a well pump installer.

A person listed as a well pump installer in this Register must advise the Comptroller in writing within 60 days of any changes to the information included in the Register or if they are no longer actively working in Canada as a well pump installer.

The person whose name appears in this Register should, in the course of their duties as a well pump installer in B.C., carry with them the well pump installer identification card issued to them by the Comptroller and must present it upon request to the Comptroller, the Regional Water Manager, an Engineer or an Officer under the Water Sustainability Act (WSA), or a Drinking Water Officer under the Drinking Water Protection Act, as proof of qualifications as a well pump installer pursuant to Section 51 of the WSA.

        *‘Certificate issued by’: Explanation of abbreviations

Province of BC: Certificate issued by the Industry Training Authority or the Advanced Education Ministry of the Province of B.C.

CGWA : Certificate issued by the Canadian Ground Water Association

N/A – grand-fathered: Not applicable. Well pump installers with this designation were registered under the grand-parenting provision of the former Ground Water Protection Regulation (2004). That provision allowed well pump installers to be registered at the discretion of the Deputy Comptroller of Water Rights, based on proof of experience.

</template>

error: pathspec 'frontend/src/registry/components/Legal.vue' did not match any file(s) known to git


bugFix

bugFix

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Esilen/GCBatch.git/'


Fix bad merge from master

Fix bad merge from master

<script>
import loadingIcon from '~/vue_shared/components/loading_icon.vue';
import eventHub from '../eventhub';

export default {
  components: {
    loadingIcon,
  },
  props: {
    deployKey: {
      type: Object,
      required: true,
    },
    type: {
      type: String,
      required: true,
    },
    btnCssClass: {
      type: String,
      required: false,
      default: 'btn-secondary',
    },
  },
  data() {
    return {
      isLoading: false,
    };
  },
  methods: {
    doAction() {
      this.isLoading = true;

      eventHub.$emit(`${this.type}.key`, this.deployKey, () => {
        this.isLoading = false;
      });
    },
  },
};
</script>

<template>
  <button
    class="btn"
    :class="[{ disabled: isLoading }, btnCssClass]"
    :disabled="isLoading"
    @click="doAction">
    <slot></slot>
    <loading-icon
      v-if="isLoading"
      :inline="true"
    />
  </button>
</template>

<script>
import loadingIcon from '~/vue_shared/components/loading_icon.vue';
import eventHub from '../eventhub';

export default {
  components: {
    loadingIcon,
  },
  props: {
    deployKey: {
      type: Object,
      required: true,
    },
    btnCssClass: {
      type: String,
      required: false,
      default: 'btn-secondary',
    },
  },
  data() {
    return {
      isLoading: false,
    };
  },
  methods: {
    doAction() {
      this.isLoading = true;

      eventHub.$emit(`${this.type}.key`, this.deployKey, () => {
        this.isLoading = false;
      });
    },
  },
};
</script>

<template>
  <button
    class="btn"
    :class="[{ disabled: isLoading }, btnCssClass]"
    :disabled="isLoading"
    @click="doAction">
    <slot></slot>
    <loading-icon
      v-if="isLoading"
      :inline="true"
    />
  </button>
</template>


Tabs: improve

Tabs: improve

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/f00-/ncompass-node-mockup.git/'


condor's initial component 🙌🏿

condor's initial component 🙌🏿

- date-time component with `class`, `format` and `:model`

<script>
  import $ from 'jquery';
  import moment from 'moment';
  import datetime from 'eonasdan-bootstrap-datetimepicker';

  /**
   * usage:
   *
   * <date-time format="HH:mm" class="form-control" :model.sync="time"></date-time>
   * <date-time format="YYYY-MM-DD" class="form-control" :model.sync="date"></date-time>
   * <date-time format="YYYY-MM-DD hh:mm A" class="form-control" :model.sync="dateTime"></date-time>
   */
  export default {
    install(Vue, options) {
      Vue.component('dateTime', {
        name: 'date',
        props: {
          model: {
            type: String,
            required: true,
            twoWay: true
          },
          class: {
            type: String,
            required: false,
            twoWay: false,
            default: ''
          },
          format: {
            type: String,
            required: false,
            twoWay: false,
            default: 'DD-MM-YYYY hh:mm A'
          }
        },
        template: `<input class="{{ class }}">`,
        ready() {
          /**
           * on initial binding
           * if: valid format and value is passed, it'll be initiated to that
           * else: now will be used to initiate, which will also be reflected back
           */
          let initalDateTime = moment(this.model, this.format);
          if(initalDateTime.isValid() === true) {
            this.$el.value = this.model;
          } else {
            let now = moment().format(this.format);
            this.$el.value = now;
            this.model = now;
          }

          this.dateTimeInstance = $(this.$el).datetimepicker({
            format: this.format,
            sideBySide: true
          });

          this.dateTimeInstance.on('dp.change', (value) => {
            // we'll be passing the RAW value from the input
            this.model = this.$el.value;
          });
        },
        destroyed() {
          this.dateTimeInstance.data('DateTimePicker').destroy();
        },
        watch: {
          /**
           * BEFORE you roll your eyes at me, hear moi out
           *
           * we're ONLY watching "outside" changes to "reflect" the change on the RAW input
           * that's it! --- it won't trigger 'dp.change' or anything so it
           * wont lead us into infinite loop or anything
           */
          model(newVal, oldVal) {
            this.$el.value = newVal;
          }
        }
      });
    }
  };
</script>

error: pathspec 'app/components/dateTime.vue' did not match any file(s) known to git


update

update

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/xiaoyann/webpack-vue-template.git/'


Fixed bug with digit 2 in Checkout page

Fixed bug with digit 2 in Checkout page

<template>

          2

              {{ $t('Shipping') }}

                  {{ $t('Edit shipping') }}

                edit

              <input type="checkbox" v-model="shipToMyAddress" id="shipToMyAddressCheckbox" @click="useMyAddress">

                {{ $t('Ship to my default address') }}

            <input
              type="text"
              name="first-name"
              :placeholder="$t('First name *')"
              v-model.trim="shipping.firstName"
              @blur="$v.shipping.firstName.$touch()"
              autocomplete="given-name"
            >

              {{ $t('Field is required') }}

              {{ $t('Name must have at least 3 letters.') }}

            <input
              type="text"
              name="last-name"
              :placeholder="$t('Last name *')"
              v-model.trim="shipping.lastName"
              @blur="$v.shipping.lastName.$touch()"
              autocomplete="family-name"
            >

              {{ $t('Field is required') }}

            <input
              type="text"
              name="street-address"
              :placeholder="$t('Street name *')"
              v-model.trim="shipping.streetAddress"
              @blur="$v.shipping.streetAddress.$touch()"
              autocomplete="shipping address-line1"
            >

              {{ $t('Field is required') }}

            <input
              type="text"
              name="apartment-number"
              :placeholder="$t('House/Apartment number *')"
              v-model.trim="shipping.apartmentNumber"
              @blur="$v.shipping.apartmentNumber.$touch()"
              autocomplete="address-line2"
            >

              {{ $t('Field is required') }}

            <input
              type="text"
              name="city"
              :placeholder="$t('City *')"
              v-model.trim="shipping.city"
              @blur="$v.shipping.city.$touch()"
              autocomplete="address-level2"
            >
            {{ $t('Field is required') }}

            <input
              type="text"
              name="state"
              :placeholder="$t('State / Province')"
              v-model.trim="shipping.state"
              autocomplete="address-level1"
            >

            <input
              type="text"
              name="zip-code"
              :placeholder="$t('Zip-code *')"
              v-model.trim="shipping.zipCode"
              @blur="$v.shipping.zipCode.$touch()"
              autocomplete="postal-code"
            >

              {{ $t('Field is required') }}

              {{ $t('Zip-code must have at least 3 letters.') }}

            <select
              name="countries"
              :class="{'cl-tertiary' : shipping.country.length === 0}"
              v-model="shipping.country"
              @change="$v.shipping.country.$touch()"
              autocomplete="country"
            >
              <option value="" disabled selected hidden>Country *</option>
              <option v-for="country in countries" :key="country.code" :value="country.code">{{ country.name }}</option>
            </select>

              {{ $t('Field is required') }}

            <input type="text" name="phone-number" :placeholder="$t('Phone Number')" v-model.trim="shipping.phoneNumber">

              {{ $t('Shipping method') }}

             {{ method.name }} | {{ method.cost | price }}
              <input
                type="radio"
                :value="method.code"
                name="shipping-method"
                v-model="shipping.shippingMethod"
                @change="$v.shipping.shippingMethod.$touch()"
              >

            {{ $t('Field is required') }}

            <button-full
              @click.native="sendDataToCheckout"
              :class="{ 'ripple': true, 'button-disabled' : $v.shipping.$invalid}"
            >
              {{ $t('Continue to payment') }}
            </button-full>

              {{ shipping.firstName }} {{ shipping.lastName }}

              {{ shipping.streetAddress }} {{ shipping.apartmentNumber }}

              {{ shipping.city }} {{ shipping.zipCode }}

              {{ shipping.state }},
              {{ getCountryName() }}

              {{ shipping.phoneNumber }}
              <tooltip>{{ $t('Phone number may be needed by carrier') }}</tooltip>

                {{ $t('Shipping method') }}

               {{ getShippingMethod().name }} | {{ getShippingMethod().cost | price }}
                <input type="radio" value="" checked disabled name="chosen-shipping-method">

</template>


Fix 404 page title

Fix 404 page title

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/barprive/barprive.com.git/'


Delete Duplicate Cameras.

Delete Duplicate Cameras.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/evercam/evercam-admin.git/'


Fix eslint error in signup.vue

Fix eslint error in signup.vue

Signed-off-by: ZhiFeng Hu <abb672b28ca55a560b8a96028ef4fd2c71d0292b@gmail.com>

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/lolipos/lolipos.git/'


Minor text changes

Minor text changes

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/04n0/goldfish.git/'


fiz quote

fiz quote

fatal: remote error: upload-pack: not our ref 622d9931c7b9b34ad18ee397f9192bed10bfc32b
fatal: the remote end hung up unexpectedly


добавляет проверку на соединение с инетом

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/taxnuke/url-shortener.git/'


restyle recycle list

restyle recycle list


Adjust nav height, removes padding. Adjusts highlight

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/NathanielDavid/Sumie.git/'


del:log信息

del:log信息

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/superbiger/vcharts.git/'


Update grid column key

Update grid column key

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/mplusmuseum/mplusmuseum-stories.git/'


Fixes linting error - Fixes linting error around missing key directive

<template>

{{ __('Trigger') }}

       {{ __('Token') }}  {{ trigger.short_token }}

    <template v-if="hasVariables">

         {{ __('Variables:') }}

        <gl-button v-if="hasValues" class="group js-reveal-variables" @click="toggleValues">
          {{ getToggleButtonText }}
        </gl-button>

        <tr v-for="(variable, index) in trigger.variables" :key="`${variable.key}-${index}`">

            {{ variable.key }}

            {{ getDisplayValue(variable.value) }}

    </template>

</template>

<template>

{{ __('Trigger') }}

       {{ __('Token') }}  {{ trigger.short_token }}

    <template v-if="hasVariables">

         {{ __('Variables:') }}

        <gl-button v-if="hasValues" class="group js-reveal-variables" @click="toggleValues">
          {{ getToggleButtonText }}
        </gl-button>

          <td
            :key="`${variable.key}-variable`"
            class="js-build-variable trigger-build-variable trigger-variables-table-cell"
          >
            {{ variable.key }}

          <td
            :key="`${variable.key}-value`"
            class="js-build-value trigger-build-value trigger-variables-table-cell"
          >
            {{ getDisplayValue(variable.value) }}

    </template>

</template>


change min dpms and step

change min dpms and step

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/kosmonavtX/Cosmoiler.git/'


Add preview upload modal

Add preview upload modal

<template>

        {{ $t("tasks.add_preview") }}

        {{ $t("tasks.select_preview_file") }}

      <file-upload
        accept=".png"
        @fileselected="onFileSelected"
      ></file-upload>

        {{ $t("tasks.add_preview_error") }}

          {{ $t("main.confirmation") }}

        <router-link
          :to="cancelRoute"
          class="button is-link">
          {{ $t("main.cancel") }}
        </router-link>

</template>

error: pathspec 'src/components/modals/AddPreviewModal.vue' did not match any file(s) known to git


[QA] Add component to simplify list page headers

<template>

    <page-title :text="title" />

    <button-simple
      class="level-item"
      icon="plus"
      :text="newEntryLabel"
      @click="$emit('new-clicked')"
    />

</template>

error: pathspec 'src/components/widgets/ListPageHeader.vue' did not match any file(s) known to git


Remove symmetric links

Remove symmetric links

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/JonathanTroyer/OC-Summer-2017-Table-Web.git/'


Store PI changes into localStorage

Store PI changes into localStorage

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/wappulehti-apy/diilikone-front-2017.git/'