Added max width while mantaining aspect ratio

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/XerxesMK/Billing-electron.git/'


finish proofreading

finish proofreading

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/'


支持file://路径写图片地址

支持file://路径写图片地址

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/bingo-oss/bui-weex.git/'


Fix transformation of base64 to temperature 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/modum-io/web.git/'


Fix typo

Fix typo

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/'


remove extra comment :fire:

remove extra comment :fire:

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/Wheatability/lets-group.git/'


Adjust YouTube thumbnails

Adjust YouTube thumbnails


Fix issue with JS this-ness

Fix issue with JS this-ness

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/'


small refine

small refine

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/Ryan-PEK/tbz-mock.git/'


Add node chip

Add node chip

<template>

    <v-chip :color="state.node.view.color" @click="selectNode" dark small>

        (x:
        {{ state.node.view.position.x.toFixed() }} y:
        {{ state.node.view.position.y.toFixed() }})

    </v-chip>

</template>

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


add 404 page

add 404 page

<template>

Error 404 - Not Found

</template>

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


New standalone item.vue component

New standalone item.vue component

<style lang="sass" module>
.itemHeader, .itemSubHeader
    font-size: 24px !important
    color: #606060 !important
    margin-top: 4em !important

    & + div
        clear: both
        position: relative
        font-size: 16px
        line-height: 28px
        letter-spacing: .08px
        color: #6f6e6e

.itemSubHeader
    font-size: 19px !important
    margin-top: 3em !important

.itemSourceButton
    font-size: .8rem !important

.demo
    margin-top: 28px !important

.code
    margin: 0 !important

    mark
        background-color: #52c6ca
        padding: 3px 6px
        border-radius: 4px
        color: #fff !important

    a
        padding: 3px 4px
        border-bottom: 1px dashed #b5b5b5
        color: #0683a5
        margin-bottom: 3px
        line-height: 1

        &:hover
            border-bottom: 1px solid darken(#b5b5b5, 5%)
            color: darken(#0683a5, 5%)
</style>

<template lang="pug">
    div
        //- 標題
        .ts.header(:class="$style.itemHeader", v-if="item.title")
            | {{ item.title }}
            //- 檢視原始碼按鈕
            button.ts.right.floated.icon.labeled.button(:class="[showingCode ? 'active' : '', $style.itemSourceButton]", @click="toggleCode")
                i.code.icon
                | 原始碼
        //- 副標題
        .ts.header(:class="$style.itemSubHeader", v-if="item.subtitle") {{ item.subtitle }}
        //- 詳細註釋
        div(v-html="item.description")

        //- Demo 區塊
        .ts.segments(:class="$style.demo")
            //- 實際範例
            .ts.padded.clearing.segment(v-html="cleanMark(item.code)", :class="{'fitted basic': !showingCode}")
            //- 程式碼區塊
            .ts.secondary.padded.segment(v-show="showingCode")
                pre(html-code, v-text="item.code", :class="$style.code")

        //- JavaScript 區塊
        .ts.header(:class="$style.itemSubHeader", v-if="item.javascript") JavaScript
        //- 程式碼區塊
        .ts.secondary.padded.segment(v-if="item.javascript")
            pre(js-code, v-text="item.javascript", :class="$style.code")
</template>

<script>
export default {
    name : 'Item',
    props: {
        item: { }
    },
    data() {
        return {
            showingCode: false
        }
    },
    methods: {
        cleanMark(code) {
            return code.replace(/\[\[(.*?)\]\]/g, "$1").replace(/{{(.*?)}}/g, "$1")
        },
        toggleCode() {
            this.showingCode = !this.showingCode
        }
    }
}
</script>

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


change submenu style

change submenu style

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/sy264115809/goblin.git/'


add hover animations and month indication to calendar

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/aligerum/clockwork.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/'


Add minor heart tweak

Add minor heart tweak

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/stefanjudis/stefan-judis-website.git/'


add tab feature with products

add tab feature with products

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/vollov/eve.git/'


:bug:修复爬虫

:bug:修复爬虫

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/jackieli123723/vue-longyuan-store-front.git/'


Change buttons styles

Change buttons 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/PayBreak/basket.git/'


Changed tools/transit title size

Changed tools/transit title size

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/'


modal form component stubbed

modal form component stubbed

<template>

          {{modal_title}}

          <hook-app-form :form="modal_Form_Data" :submit_resource="resource_urls.submit_resource" :search_resource="resource_urls.search_resource" :form_is_inline="inlined_form"></hook-app-form>

          <button type="button" class="btn btn-danger" v-on:click="closeModal">Close</button>
          <button type="submit" v-on:click="submitForm" :class="['btn', 'btn-primary', {'disabled-button' : !activate_submit_button}]">{{modal_submit_message}}</button>

</template>

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


Added helpful warning to token creator page


Table: Fixed #3896 (#4023)

Table: Fixed #3896 (#4023)

* Table: Fixed #3896

* Table: fixed filter-panel format

* Table: fixed filter-panel.vue

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/iamnewsea/element-pzx.git/'


updated button size

updated button size

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/jcock/jcock.rocks.nuxt.git/'


Fix header breakpoint

Fix header breakpoint

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/LokeCarlsson/lokecarlsson.git/'


Changed animation speed

Changed animation speed


fix display of total items on md-table-pagination (#190) #181

* fix : tablePagination md-total bug

to display the right number , not always Numer.MAX_SAFE_INTEGER or
“false”

* fix : table pagination template part

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/'


fix user api URL

fix user api URL

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/Janiaje/HospitApp.git/'


Fixed ID for lists

Fixed ID for lists

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/kolyaraketa/my-lists.git/'


IndexMovies--moviesselect update

IndexMovies--moviesselect 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/firery/mirs-web-vue.git/'


Removed console.log.

Removed console.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/evercam/evercam-admin.git/'


Adding global styles

Adding global 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/eoinmurphy/field-guide.git/'


fixed icon display

fixed icon display

<template lang="pug">
  doc-view
    template(slot-scope="{ namespace }")
      app-alert(error :value="`${namespace}.alert1`")
      app-alert(info :value="`${namespace}.newStoreAlert`")

      section#supported-browsers
        section-head(:value="`${namespace}.browserHeader`")
        section-text(:value="`${namespace}.browserText`")
        v-list.transparent.py-0
          v-layout(row wrap)
            v-flex(
              xs12 sm6 md4
              v-for="browser in browsers"
              v-bind:key="browser.title"
            ).px-0
              v-list-tile(avatar tag="ul")
                v-list-tile-avatar(:color="browser.supported ? browser.supported === 'polyfill' ? 'warning' : 'success' : 'error'")
                  v-icon(dark v-if="typeof browser.icon === 'string'") fa-{{ browser.icon }}
                  v-icon(dark v-else v-for="icon in browser.icon" :key="icon").browser-icon--split fa-{{ icon }}
                v-list-tile-content
                  v-list-tile-title {{ browser.title }}
                  v-list-tile-sub-title {{ getBrowserSupport(browser) }}

      section#cdn-install
        section-head(:value="`${namespace}.cdnHeader`")
        section-text(:value="`${namespace}.cdnText`")

        markup(lang="html")
          | <!DOCTYPE html>
          |
          |
          |   <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet">
          |   <link href="https://unpkg.com/vuetify/dist/vuetify.min.css" rel="stylesheet">
          |   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
          |
          |
          |

          |     <v-app>
          |       <v-content>
          |         <v-container>Hello world</v-container>
          |       <v-content>
          |     </v-app>
          |

          |
          |
          |
          |
          |
          |

      section#new-applications
        section-head(:value="`${namespace}.newHeader`")
        section-text(:value="`${namespace}.newText`")
        template-list

      section#existing-applications
        section-head(:value="`${namespace}.existingHeader`")
        section-text(:value="`${namespace}.existingText1`")
        section-text(:value="`${namespace}.existingText2`")
        markup(lang="cli")
          | $ npm install vuetify --save
          | # or
          | $ yarn add vuetify
        section-text(:value="`${namespace}.existingText3`")
        markup(lang="js")
          | import Vue from 'vue'
          | import Vuetify from 'vuetify'
          |
          | Vue.use(Vuetify)
        section-text(:value="`${namespace}.existingText4`")
        markup(lang="js")
          | // index.js or main.js
          | import 'vuetify/dist/vuetify.min.css' // Ensure you are using css-loader
        markup(lang="stylus")
          | // main.styl
          | @import '~vuetify/src/stylus/main' // Ensure you are using stylus-loader

        section-text(:value="`${namespace}.existingText5`")
        markup(lang="html")
          |
          |   <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons' rel="stylesheet">
          |
        app-alert(error :value="`${namespace}.alert2`")

      section#ie11-support
        section-head(:value="`${namespace}.ie11Header`")
        section-text(:value="`${namespace}.ie11Text`")

        markup(lang="cli")
          | // my-project/
          | $ npm install babel-polyfill --save
          | // or
          | $ yarn add babel-polyfill

        markup(lang="javascript")
          | // my-project/src/index.js
          | import 'babel-polyfill'
          | ...
          | new Vue()

        section-text(:value="`${namespace}.ie11Text2`")
        markup(lang="html")
          | <template slot="items" slot-scope="props">
          |   {{ props.item.name }}
          | </template>
</template>


docs(VNavigationDrawer): fix example display

<template>
  <v-container
    v-if="structure !== false"
    :id="composite"
    class="page"
  >
    <template v-if="structure">
      <doc-heading v-if="structure.title">
        {{ structure.title }}
      </doc-heading>
      <div
        v-if="structure.titleText"
        class="mb-5"
      >
        <doc-text
          v-if="structure.titleText"
          class="mb-4"
        >
          {{ structure.titleText }}
        </doc-text>
      </div>

      <component
        v-for="(child, i) in structure.children"
        :key="`${composite}-${i}`"
        :is="getComponent(child.type)"
        :value="child"
      />

      <doc-contribution />
    </template>
  </v-container>
  <not-found v-else />
</template>

<script>
  // Utilities
  import {
    mapState
  } from 'vuex'
  import { getComponent } from '@/util/helpers'

  export default {
    components: {
      NotFound: () => import('@/pages/general/404')
    },

    data: () => ({
      timeout: null
    }),

    computed: {
      ...mapState('documentation', ['structure']),
      ...mapState('route', ['params']),
      composite () {
        return `${this.params.namespace}-${this.params.page}`
      }
    },

    watch: {
      '$route.path': 'init'
    },

    mounted () {
      this.init()
    },

    methods: {
      getComponent,
      async init () {
        clearTimeout(this.timeout)

        this.timeout = setTimeout(() => {
          const sameInternal = this.$el.querySelectorAll('a.markdown--same-internal')

          Array.prototype.forEach.call(sameInternal, el => {
            el.addEventListener('click', this.onSameInternalClick)
          })

          const internal = this.$el.querySelectorAll('a.markdown--internal')

          Array.prototype.forEach.call(internal, el => {
            el.addEventListener('click', this.onInternalClick)
          })
        }, 300)
      },
      onSameInternalClick (e) {
        e.preventDefault()

        this.$router.push(e.target)
      },
      onInternalClick (e) {
        e.preventDefault()

        const target = e.target.tagName === 'A'
          ? e.target
          : e.target.parentElement

        const lang = `/${this.params.lang}`
        const length = lang.length
        let href = target.getAttribute('href')

        // If missing leading forward slash
        if (href.charAt(0) !== '/') {
          href = `/${href}`
        }

        // If missing language
        if (href.slice(0, length) !== lang) {
          href = `${lang}${href}`
        }

        this.$router.push(href)
      }
    }
  }
</script>

<style lang="stylus">
  .page
    max-width: 1185px;

  #components-navigation-drawers
    .v-sheet,
    .v-card
      overflow: hidden;
</style>

<template>
  <v-container
    v-if="structure !== false"
    id="page"
  >
    <template v-if="structure">
      <doc-heading v-if="structure.title">
        {{ structure.title }}
      </doc-heading>
      <div
        v-if="structure.titleText"
        class="mb-5"
      >
        <doc-text
          v-if="structure.titleText"
          class="mb-4"
        >
          {{ structure.titleText }}
        </doc-text>
      </div>

      <component
        v-for="(child, i) in structure.children"
        :key="`${composite}-${i}`"
        :is="getComponent(child.type)"
        :value="child"
      />

      <doc-contribution />
    </template>
  </v-container>
  <not-found v-else />
</template>

<script>
  // Utilities
  import {
    mapState
  } from 'vuex'
  import { getComponent } from '@/util/helpers'

  export default {
    components: {
      NotFound: () => import('@/pages/general/404')
    },

    data: () => ({
      timeout: null
    }),

    computed: {
      ...mapState('documentation', ['structure']),
      ...mapState('route', ['params']),
      composite () {
        return `${this.params.namespace}-${this.params.page}`
      }
    },

    watch: {
      '$route.path': 'init'
    },

    mounted () {
      this.init()
    },

    methods: {
      getComponent,
      async init () {
        clearTimeout(this.timeout)

        this.timeout = setTimeout(() => {
          const sameInternal = this.$el.querySelectorAll('a.markdown--same-internal')

          Array.prototype.forEach.call(sameInternal, el => {
            el.addEventListener('click', this.onSameInternalClick)
          })

          const internal = this.$el.querySelectorAll('a.markdown--internal')

          Array.prototype.forEach.call(internal, el => {
            el.addEventListener('click', this.onInternalClick)
          })
        }, 300)
      },
      onSameInternalClick (e) {
        e.preventDefault()

        this.$router.push(e.target)
      },
      onInternalClick (e) {
        e.preventDefault()

        const target = e.target.tagName === 'A'
          ? e.target
          : e.target.parentElement

        const lang = `/${this.params.lang}`
        const length = lang.length
        let href = target.getAttribute('href')

        // If missing leading forward slash
        if (href.charAt(0) !== '/') {
          href = `/${href}`
        }

        // If missing language
        if (href.slice(0, length) !== lang) {
          href = `${lang}${href}`
        }

        this.$router.push(href)
      }
    }
  }
</script>

<style>
#page {
  max-width: 1185px;
}
</style>


解决显示问题

解决显示问题

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/xiaowenxia/LiteOS.git/'


fix: cursor on intput

fix: cursor on intput

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/buckless/datetime-picker.git/'


add template and props to ArticleCreate

add template and props to ArticleCreate

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/'


finish logic of installation

finish logic of installation


Horizontal Lines

Horizontal Lines

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/modum-io/web.git/'


Dorpodown button now accept html

Dorpodown button now accept html

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/lotestudio/vue-strap.git/'


Correct link for contact-list

Correct link for contact-list

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/NoumirPoutipou/oanq.git/'


Adding component for Balance method overview


refactory http test

refactory http test

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/'


Set extra attributes in Checkout.vue

Set extra attributes in Checkout.vue

<template>
  <div id="checkout">
    Core Checkout
  </div>
</template>

<script>
import PersonalDetails from 'core/components/blocks/Checkout/PersonalDetails.vue'
import Shipping from 'core/components/blocks/Checkout/Shipping.vue'
import Payment from 'core/components/blocks/Checkout/Payment.vue'
import OrderReview from 'core/components/blocks/Checkout/OrderReview.vue'
import CartSummary from 'core/components/blocks/Checkout/CartSummary.vue'
import ThankYouPage from 'core/components/blocks/Checkout/ThankYouPage.vue'
import i18n from 'core/lib/i18n'

export default {
  name: 'Checkout',
  data () {
    return {
      stockCheckCompleted: false,
      stockCheckOK: false,
      orderPlaced: false,
      activeSection: {
        personalDetails: true,
        shipping: false,
        payment: false,
        orderReview: false
      },
      order: {},
      personalDetails: {},
      shipping: {},
      payment: { paymentMethod: 'cashondelivery' },
      orderReview: {},
      cartSummary: {},
      validationResults: {
        personalDetails: { $invalid: true },
        shipping: { $invalid: true },
        payment: { $invalid: true }
      },
      userId: null
    }
  },
  beforeMount () {
    if (this.$store.state.cart.cartItems.length === 0) {
      this.$bus.$emit('notification', {
        type: 'warning',
        message: i18n.t('Shopping cart is empty. Please add some products before entering Checkout'),
        action1: { label: 'OK', action: 'close' }
      })
      this.$router.push('/')
    } else {
      this.stockCheckCompleted = false
      for (let product of this.$store.state.cart.cartItems) { // check the results of online stock check
        const checkPromises = []
        if (product.onlineStockCheckid) {
          checkPromises.push(new Promise((resolve, reject) => {
            global.db.syncTaskCollection.getItem(product.onlineStockCheckid, function (err, item) {
              if (err) {
                console.error(err)
                resolve(null)
              } else {
                product.stock = item.result
                resolve(product)
              }
            })
          }))
          Promise.all(checkPromises).then(checkedProducts => {
            this.stockCheckCompleted = true
            this.stockCheckOK = true
            for (let chp of checkedProducts) {
              if (chp && chp.stock) {
                if (!chp.stock.is_in_stock) {
                  this.stockCheckOK = false
                  chp.warning_message = i18n.t('Out of stock!')
                  this.$bus.$emit('notification', {
                    type: 'error',
                    message: chp.name + i18n.t(' is out of the stock!'),
                    action1: { label: 'OK', action: 'close' }
                  })
                }
              }
            }
          })
        }
      }
    }
  },
  created () {
    // TO-DO: Dont use event bus ad use v-on at components (?)
    this.$bus.$on('network-before-checkStatus', (status) => { this.checkConnection(status) })
    // TO-DO: Use one event with name as apram
    this.$bus.$on('checkout-after-personalDetails', (receivedData, validationResult) => {
      this.personalDetails = receivedData
      this.validationResults.personalDetails = validationResult
      this.activateSection('shipping')
      this.savePersonalDetails()
    })
    this.$bus.$on('checkout-after-shippingDetails', (receivedData, validationResult) => {
      this.shipping = receivedData
      this.validationResults.shipping = validationResult
      global.__TAX_COUNTRY__ = this.shipping.country
      this.activateSection('payment')
      this.saveShippingDetails()
    })
    this.$bus.$on('checkout-after-paymentDetails', (receivedData, validationResult) => {
      this.payment = receivedData
      this.validationResults.payment = validationResult
      this.activateSection('orderReview')
      this.savePaymentDetails()
    })
    this.$bus.$on('checkout-after-cartSummary', (receivedData) => {
      this.cartSummary = receivedData
    })
    this.$bus.$on('checkout-before-placeOrder', (userId) => {
      if (userId) {
        this.userId = userId.toString()
      }
      this.placeOrder()
    })
    this.$bus.$on('checkout-before-edit', (section) => {
      this.activateSection(section)
    })
    this.$bus.$on('order-after-placed', (order) => {
      this.orderPlaced = true
      console.log(this.order)
    })
  },
  destroyed () {
    this.$bus.$off('network-before-checkStatus')
    this.$bus.$off('checkout-after-personalDetails')
    this.$bus.$off('checkout-after-shippingDetails')
    this.$bus.$off('checkout-after-paymentDetails')
    this.$bus.$off('checkout-after-cartSummary')
    this.$bus.$off('checkout-before-placeOrder')
    this.$bus.$off('checkout-before-edit')
    this.$bus.$off('order-after-placed')
  },
  computed: {
    isValid () {
      let isValid = true
      for (let child of this.$children) {
        if (child.hasOwnProperty('$v')) {
          if (child.$v.$invalid) {
            // Check if child component is Personal Details.
            // If so, then ignore validation of account creation fields.
            if (child.$v.hasOwnProperty('personalDetails')) {
              if (child.$v.personalDetails.$invalid) {
                isValid = false
                break
              }
            } else {
              isValid = false
              break
            }
          }
        }
      }

      if (typeof navigator !== 'undefined' && navigator.onLine) {
        if (this.stockCheckCompleted) {
          if (!this.stockCheckOK) {
            isValid = false
            this.$bus.$emit('notification', {
              type: 'error',
              message: i18n.t('Some of the ordered products are not available!'),
              action1: { label: 'OK', action: 'close' }
            })
          }
        } else {
          this.$bus.$emit('notification', {
            type: 'warning',
            message: i18n.t('Stock check in progress, please wait while available stock quantities are checked'),
            action1: { label: 'OK', action: 'close' }
          })
          isValid = false
        }
      }
      return isValid
    }
  },
  methods: {
    checkConnection (status) {
      if (!status.online) {
        this.$bus.$emit('notification', {
          type: 'warning',
          message: i18n.t('There is no Internet connection. You can still place your order. We will notify you if any of ordered products is not avaiable because we cannot check it right now.'),
          action1: { label: 'OK', action: 'close' }
        })
      }
    },
    activateSection (sectionToActivate) {
      for (let section in this.activeSection) {
        this.activeSection[section] = false
      }
      this.activeSection[sectionToActivate] = true
    },
    prepareOrder () {
      this.order = {
        user_id: this.$store.state.user.current ? this.$store.state.user.current.id.toString() : (this.userId ? this.userId : ''),
        cart_id: this.$store.state.cart.cartServerToken ? this.$store.state.cart.cartServerToken : '',
        products: this.$store.state.cart.cartItems,
        addressInformation: {
          shippingAddress: {
            region: this.shipping.state,
            region_id: 0,
            country_id: this.shipping.country,
            street: [this.shipping.streetAddress, this.shipping.apartmentNumber],
            company: 'NA', // TODO: Fix me! https://github.com/DivanteLtd/vue-storefront/issues/224
            telephone: this.shipping.phoneNumber,
            postcode: this.shipping.zipCode,
            city: this.shipping.city,
            firstname: this.shipping.firstName,
            lastname: this.shipping.lastName,
            email: this.personalDetails.emailAddress,
            region_code: ''
          },
          billingAddress: {
            region: this.payment.state,
            region_id: 0,
            country_id: this.payment.country,
            street: [this.payment.streetAddress, this.payment.apartmentNumber],
            company: this.payment.company,
            telephone: this.payment.phoneNumber,
            postcode: this.payment.zipCode,
            city: this.payment.city,
            firstname: this.payment.firstName,
            lastname: this.payment.lastName,
            email: this.personalDetails.emailAddress,
            region_code: '',
            vat_id: this.payment.taxId
          },
          shipping_method_code: this.shipping.shippingMethod,
          shipping_carrier_code: this.shipping.shippingMethod,
          payment_method_code: this.payment.paymentMethod,
          shippingExtraFields: this.shipping.extraFields
        }
      }
      return this.order
    },
    placeOrder () {
      this.checkConnection({ online: typeof navigator !== 'undefined' ? navigator.onLine : true })
      if (this.isValid) {
        this.$store.dispatch('checkout/placeOrder', { order: this.prepareOrder() })
      } else {
        this.$bus.$emit('notification', {
          type: 'error',
          message: i18n.t('Please do correct validation errors'),
          action1: { label: 'OK', action: 'close' }
        })
      }
    },
    savePersonalDetails () {
      this.$store.dispatch('checkout/savePersonalDetails', this.personalDetails)
    },
    saveShippingDetails () {
      this.$store.dispatch('checkout/saveShippingDetails', this.shipping)
    },
    savePaymentDetails () {
      this.$store.dispatch('checkout/savePaymentDetails', this.payment)
    }
  },
  components: {
    PersonalDetails,
    Shipping,
    Payment,
    OrderReview,
    CartSummary,
    ThankYouPage
  }
}
</script>

<template>
  <div id="checkout">
    Core Checkout
  </div>
</template>

<script>
import PersonalDetails from 'core/components/blocks/Checkout/PersonalDetails.vue'
import Shipping from 'core/components/blocks/Checkout/Shipping.vue'
import Payment from 'core/components/blocks/Checkout/Payment.vue'
import OrderReview from 'core/components/blocks/Checkout/OrderReview.vue'
import CartSummary from 'core/components/blocks/Checkout/CartSummary.vue'
import ThankYouPage from 'core/components/blocks/Checkout/ThankYouPage.vue'
import i18n from 'core/lib/i18n'

export default {
  name: 'Checkout',
  data () {
    return {
      stockCheckCompleted: false,
      stockCheckOK: false,
      orderPlaced: false,
      activeSection: {
        personalDetails: true,
        shipping: false,
        payment: false,
        orderReview: false
      },
      order: {},
      personalDetails: {},
      shipping: {},
      payment: { paymentMethod: 'cashondelivery' },
      orderReview: {},
      cartSummary: {},
      validationResults: {
        personalDetails: { $invalid: true },
        shipping: { $invalid: true },
        payment: { $invalid: true }
      },
      userId: null
    }
  },
  beforeMount () {
    if (this.$store.state.cart.cartItems.length === 0) {
      this.$bus.$emit('notification', {
        type: 'warning',
        message: i18n.t('Shopping cart is empty. Please add some products before entering Checkout'),
        action1: { label: 'OK', action: 'close' }
      })
      this.$router.push('/')
    } else {
      this.stockCheckCompleted = false
      for (let product of this.$store.state.cart.cartItems) { // check the results of online stock check
        const checkPromises = []
        if (product.onlineStockCheckid) {
          checkPromises.push(new Promise((resolve, reject) => {
            global.db.syncTaskCollection.getItem(product.onlineStockCheckid, function (err, item) {
              if (err) {
                console.error(err)
                resolve(null)
              } else {
                product.stock = item.result
                resolve(product)
              }
            })
          }))
          Promise.all(checkPromises).then(checkedProducts => {
            this.stockCheckCompleted = true
            this.stockCheckOK = true
            for (let chp of checkedProducts) {
              if (chp && chp.stock) {
                if (!chp.stock.is_in_stock) {
                  this.stockCheckOK = false
                  chp.warning_message = i18n.t('Out of stock!')
                  this.$bus.$emit('notification', {
                    type: 'error',
                    message: chp.name + i18n.t(' is out of the stock!'),
                    action1: { label: 'OK', action: 'close' }
                  })
                }
              }
            }
          })
        }
      }
    }
  },
  created () {
    // TO-DO: Dont use event bus ad use v-on at components (?)
    this.$bus.$on('network-before-checkStatus', (status) => { this.checkConnection(status) })
    // TO-DO: Use one event with name as apram
    this.$bus.$on('checkout-after-personalDetails', (receivedData, validationResult) => {
      this.personalDetails = receivedData
      this.validationResults.personalDetails = validationResult
      this.activateSection('shipping')
      this.savePersonalDetails()
    })
    this.$bus.$on('checkout-after-shippingDetails', (receivedData, validationResult) => {
      this.shipping = receivedData
      this.validationResults.shipping = validationResult
      global.__TAX_COUNTRY__ = this.shipping.country
      this.activateSection('payment')
      this.saveShippingDetails()
    })
    this.$bus.$on('checkout-after-paymentDetails', (receivedData, validationResult) => {
      this.payment = receivedData
      this.validationResults.payment = validationResult
      this.activateSection('orderReview')
      this.savePaymentDetails()
    })
    this.$bus.$on('checkout-after-cartSummary', (receivedData) => {
      this.cartSummary = receivedData
    })
    this.$bus.$on('checkout-before-placeOrder', (userId) => {
      if (userId) {
        this.userId = userId.toString()
      }
      this.placeOrder()
    })
    this.$bus.$on('checkout-before-edit', (section) => {
      this.activateSection(section)
    })
    this.$bus.$on('order-after-placed', (order) => {
      this.orderPlaced = true
      console.log(this.order)
    })
  },
  destroyed () {
    this.$bus.$off('network-before-checkStatus')
    this.$bus.$off('checkout-after-personalDetails')
    this.$bus.$off('checkout-after-shippingDetails')
    this.$bus.$off('checkout-after-paymentDetails')
    this.$bus.$off('checkout-after-cartSummary')
    this.$bus.$off('checkout-before-placeOrder')
    this.$bus.$off('checkout-before-edit')
    this.$bus.$off('order-after-placed')
  },
  computed: {
    isValid () {
      let isValid = true
      for (let child of this.$children) {
        if (child.hasOwnProperty('$v')) {
          if (child.$v.$invalid) {
            // Check if child component is Personal Details.
            // If so, then ignore validation of account creation fields.
            if (child.$v.hasOwnProperty('personalDetails')) {
              if (child.$v.personalDetails.$invalid) {
                isValid = false
                break
              }
            } else {
              isValid = false
              break
            }
          }
        }
      }

      if (typeof navigator !== 'undefined' && navigator.onLine) {
        if (this.stockCheckCompleted) {
          if (!this.stockCheckOK) {
            isValid = false
            this.$bus.$emit('notification', {
              type: 'error',
              message: i18n.t('Some of the ordered products are not available!'),
              action1: { label: 'OK', action: 'close' }
            })
          }
        } else {
          this.$bus.$emit('notification', {
            type: 'warning',
            message: i18n.t('Stock check in progress, please wait while available stock quantities are checked'),
            action1: { label: 'OK', action: 'close' }
          })
          isValid = false
        }
      }
      return isValid
    }
  },
  methods: {
    checkConnection (status) {
      if (!status.online) {
        this.$bus.$emit('notification', {
          type: 'warning',
          message: i18n.t('There is no Internet connection. You can still place your order. We will notify you if any of ordered products is not avaiable because we cannot check it right now.'),
          action1: { label: 'OK', action: 'close' }
        })
      }
    },
    activateSection (sectionToActivate) {
      for (let section in this.activeSection) {
        this.activeSection[section] = false
      }
      this.activeSection[sectionToActivate] = true
    },
    prepareOrder () {
      this.order = {
        user_id: this.$store.state.user.current ? this.$store.state.user.current.id.toString() : (this.userId ? this.userId : ''),
        cart_id: this.$store.state.cart.cartServerToken ? this.$store.state.cart.cartServerToken : '',
        products: this.$store.state.cart.cartItems,
        addressInformation: {
          shippingAddress: {
            region: this.shipping.state,
            region_id: 0,
            country_id: this.shipping.country,
            street: [this.shipping.streetAddress, this.shipping.apartmentNumber],
            company: 'NA', // TODO: Fix me! https://github.com/DivanteLtd/vue-storefront/issues/224
            telephone: this.shipping.phoneNumber,
            postcode: this.shipping.zipCode,
            city: this.shipping.city,
            firstname: this.shipping.firstName,
            lastname: this.shipping.lastName,
            email: this.personalDetails.emailAddress,
            region_code: ''
          },
          billingAddress: {
            region: this.payment.state,
            region_id: 0,
            country_id: this.payment.country,
            street: [this.payment.streetAddress, this.payment.apartmentNumber],
            company: this.payment.company,
            telephone: this.payment.phoneNumber,
            postcode: this.payment.zipCode,
            city: this.payment.city,
            firstname: this.payment.firstName,
            lastname: this.payment.lastName,
            email: this.personalDetails.emailAddress,
            region_code: '',
            vat_id: this.payment.taxId
          },
          shipping_method_code: this.shipping.shippingMethod,
          shipping_carrier_code: this.shipping.shippingMethod,
          payment_method_code: this.payment.paymentMethod
        }
      }
      return this.order
    },
    placeOrder () {
      this.checkConnection({ online: typeof navigator !== 'undefined' ? navigator.onLine : true })
      if (this.isValid) {
        this.$store.dispatch('checkout/placeOrder', { order: this.prepareOrder() })
      } else {
        this.$bus.$emit('notification', {
          type: 'error',
          message: i18n.t('Please do correct validation errors'),
          action1: { label: 'OK', action: 'close' }
        })
      }
    },
    savePersonalDetails () {
      this.$store.dispatch('checkout/savePersonalDetails', this.personalDetails)
    },
    saveShippingDetails () {
      this.$store.dispatch('checkout/saveShippingDetails', this.shipping)
    },
    savePaymentDetails () {
      this.$store.dispatch('checkout/savePaymentDetails', this.payment)
    }
  },
  components: {
    PersonalDetails,
    Shipping,
    Payment,
    OrderReview,
    CartSummary,
    ThankYouPage
  }
}
</script>


feat: шаблон модальной формы действия

feat: шаблон модальной формы действия

<template>
  <af-modal-form ref="form"
                 :title="formTitle"
                 :valid="validate()"
                 :okHandle="onOkClick"
                 :scrollable="formMaxHeight"
  >
    <af-field-set caption="">
      <div class="row">

      </div>
    </af-field-set>
  </af-modal-form>
</template>

<script>
  import {} from 'quasar-framework'
  import {mapState, mapGetters, mapActions} from 'vuex'
  import {AfEventsMapper, AfModalForm, AfMfMixin, AfFieldSet} from '../src/components/base' // change relative path

  export default {
    name: '',
    mixins: [AfEventsMapper, AfMfMixin],
    props: [],
    data () {
      return {
        formTitle: 'ChangeTitle',
        formMaxHeight: 600, // change this
        eventsMap: {
          // 'event': this.method
        }
      }
    },
    components: {
      AfModalForm,
      AfFieldSet
    },
    methods: {
      ...mapActions([
      ]),
      validate () {
        if (Object.keys(this.$refs).length === 0) return false
        // return this.$refs.ref.isValid &&
      },
      onOkClick () {
        // void this.$store.dispatch('', {})
      },
      open () {
        // init field values
        this.$refs.form.open()
      }
    },
    computed: {
      ...mapState({
        // name: state => state.module.name
      }),
      ...mapGetters([
      ])
    }
  }
</script>

<style lang="stylus">
</style>

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


InputNumber: change event should fire after input event (#10553)

<template>

      <i :class="`el-icon-${controlsAtRight ? 'arrow-down' : 'minus'}`">

      <i :class="`el-icon-${controlsAtRight ? 'arrow-up' : 'plus'}`">

    <el-input
      ref="input"
      :value="currentValue"
      :disabled="inputNumberDisabled"
      :size="inputNumberSize"
      :max="max"
      :min="min"
      :name="name"
      :label="label"
      @keydown.up.native.prevent="increase"
      @keydown.down.native.prevent="decrease"
      @blur="handleBlur"
      @focus="handleFocus"
      @change="handleInputChange">
      <template slot="prepend" v-if="$slots.prepend">
        <slot name="prepend"></slot>
      </template>
      <template slot="append" v-if="$slots.append">
        <slot name="append"></slot>
      </template>
    </el-input>

</template>


use unknown password

use unknown password

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/CHCP/toolmaker-web.git/'


fix bug: error on data binding

fix bug: error on data binding


增加发布修改复用组件

增加发布修改复用组件

<template>

		<input v-model="title" type="text" placeholder="请输入标题" v-bind:class="{'active': errormsg}">

			分类：
			<select v-model="type" >
				<option value="ask">问答</option>
				<option value="share">分享</option>
				<option value="job">招聘</option>
			</select>

			<textarea name="" id="" cols="30" rows="10" v-model="content" v-bind:class="{'active': errormsg}">
			</textarea>

		<input type="submit" value="提交" @click.stop="topicaction">

</template>

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


Create 721.vue

Create 721.vue

<template>
  <div>
    <v-date-picker v-model="date" :max-date="maxDate" />
  </div>
</template>

<script>
export default {
  githubTitle: 'Weird max-date prop behavour?',
  data() {
    return {
      date: null,
      maxDate: new Date(),
    };
  },
};
</script>

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


Center image

Center image

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/'


List test

List test

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


Add thumbnail component

Add thumbnail component

<template>
  <a :href="original">
    <img :src="thumb" alt="" class="img-thumbnail">
  </a>
</template>

<script>
export default {
  props: ['original', 'thumb'],
  mounted() {
    if(process.BROWSER_BUILD) {
      const Zooming = require('zooming')
      const zooming = new Zooming({
        bgColor: '#000',
        zIndex: 2000,
        bgOpacity: .5
      })
      zooming.listen(this.$el.querySelector('img'))
    }
  }
}
</script>

<style scoped>
.img-thumbnail {
  max-height: 96px;
  max-width: 96px;
}
</style>

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


center suggested episode items

center suggested episode items

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/'


Fix import paths for mixins etc

Fix import paths for mixins etc

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/gustojs/formics.git/'


getting ready for the action buttons

getting ready for the action buttons

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/chrisamow/url-ingstad.git/'


added back hiding logic

added back hiding logic


Add a simple component to scroll inputs all the way to the right (extends element's input component).

<script>
/*
 * This scrolls input elements when they are mounted to reveal the last bit
 * of text. This is especially useful for differentiating URLs, which was the
 * case with MenuEditor.vue (where this is used).
 */
import { Input } from 'element-ui';

export default {
	name: 'scroll-el-input',

	extends: Input,

	mounted() {
		const input = this.$refs['input'];
		input.scrollLeft = input.scrollWidth;
	}
};
</script>

error: pathspec 'resources/assets/js/components/ScrollInput.vue' did not match any file(s) known to git


Fix hero width

Fix hero width

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/LokeCarlsson/lokecarlsson.git/'


update suip link

update suip link

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/lostrack/homepage.git/'


Removing padding from .column (default)

Removing padding from .column (default)

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/'


Load data based on current mastery models and attempt logs.

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/christianmemije/kolibri-exercise-perseus-plugin.git/'


modal

modal

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


Fixed LDAP and Userpass login bug #128

Fixed LDAP and Userpass login bug #128

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/'


Unused styles

Unused 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/'


Centers video feed

Centers video feed


Small improvement in the style

Small improvement in the style

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/YanchWare/yanchware-cms-web.git/'


Removed news and info from front page

Removed news and info from front 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/ICJIA/icjia-gata.git/'


edited about me

edited about me

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/alidcastano/alidcastano.github.io.git/'


added example playground file

added example playground file

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/stephane/vuetify.git/'


Simple navigation

Simple navigation

<template lang="pug">
  nav
    ul
      li
        a(v-link="{path: '/', exact: true}") Home
      li
        a(v-link="{path: '/pool'}") Resource Pool
</template>

<style lang="scss">
  .active {
    font-weight: bold;
  }
</style>

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


eslint errors in examples/App.vue

eslint errors in examples/App.vue

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/doximity/vue-genome.git/'


Working on the camera

Working on the camera

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/'


merging with origin

merging with origin

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/pantoninho/pimp-my-git.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/yujiant/zhiku.git/'


Treat '#' as ending data URI body content

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/chevion/chrome-plugins-manager.git/'


fix countryflags.io URL

fix countryflags.io URL

www.countryflags.io causes certificate errors

<template lang="pug">
  v-toolbar(
    color="primary"
    app
    dark
    fixed
    scroll-off-screen
    height="58px"
    :manual-scroll="isManualScrolled"
    :inverted-scroll="isHome"
    ref="toolbar"
  )#app-toolbar
    v-toolbar-side-icon(
      @click="$store.commit('app/DRAWER_TOGGLE')"
      v-show="!stateless && $vuetify.breakpoint.mdAndDown"
    )
    router-link(:to="{ name: 'Home' }").d-flex.ml-3
      img(
        src="/static/v-alt.svg"
        height="38px"
        width="38px"
      )

    v-fade-transition(mode="out-in")
      v-btn(flat :to="backPath" v-if="$route.path.name === 'store/Index'")
        v-icon(left) mdi-arrow-left
        span {{ $t('Vuetify.AppToolbar.backToDocs' )}}
      v-toolbar-title(v-else).pb-1.hidden-xs-only Vuetify

    v-spacer
    v-toolbar-items
      v-btn(
        flat
        v-show="isHome"
        :to="{ name: 'getting-started/QuickStart' }"
      )
        span.hidden-md-and-up {{ $t('Vuetify.AppToolbar.docs' )}}
        span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.documentation' )}}
      v-menu(
        bottom
        offset-y
        left
        attach
        v-show="!isStore"
      )
        v-btn(
          slot="activator"
          flat
          style="min-width: 64px"
        )
          img(
            :src="`http://www.countryflags.io/${currentLanguage.country}/flat/32.png`"
            width="32px"
          )
        v-list(light)
          v-list-tile(
            avatar
            v-for="language in languages"
            :key="language.locale"
            @click="translateI18n(language.locale)"
          )
            v-list-tile-avatar(size="24px").avatar--tile
              img(
                :src="`https://countryflags.io/${language.country}/flat/24.png`"
                width="24px"
              )
            v-list-tile-title {{language.title}}
    v-toolbar-items
      v-btn(
        flat
        style="min-width: 64px"
        v-show="!isStore"
        :to="{ name: 'store/Index' }"
      )
        span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.store' )}}
        v-icon(:right="$vuetify.breakpoint.mdAndUp") store

    v-toolbar-items
      v-menu(
        attach
        bottom
        left
        offset-y
        v-show="!isStore"
      )
        v-btn(
          flat
          slot="activator"
          style="min-width: 64px"
        )
          span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.ecosystem' )}}
          v-icon(:right="$vuetify.breakpoint.mdAndUp") mdi-earth
        v-list(light)
          v-subheader(light) {{ $t('Vuetify.AppToolbar.quickLinks' )}}
          v-list-tile(
            target="_blank"
            rel="noopener"
            v-for="ecosystem in ecosystems"
            :href="ecosystem.href"
            :key="ecosystem.text"
          )
            v-list-tile-action
              v-icon(light) {{ ecosystem.icon }}
            v-list-tile-content
              v-list-tile-title {{ ecosystem.text }}
          v-divider(light)
          v-subheader(light) {{ $t('Vuetify.AppToolbar.social' )}}
          v-list-tile(
            target="_blank"
            rel="noopener"
            v-for="social in socials"
            :href="social.href"
            :key="social.text"
          )
            v-list-tile-action
              v-icon(light) {{ social.icon }}
            v-list-tile-content
              v-list-tile-title {{ social.text }}

      v-menu(
        bottom
        offset-y
        attach
        v-show="!isStore"
      ).hidden-xs-only
        v-btn(
          slot="activator"
          flat
        )
          span {{ currentVersion }}
          v-icon(right) keyboard_arrow_down
        v-list(light)
          v-list-tile(
            v-for="release in releases"
            :key="release"
            @click="changeToRelease(release)"
          )
            v-list-tile-avatar
              v-icon(light) mdi-package
            v-list-tile-content
              v-list-tile-title {{ release }}

      v-btn(
        v-if="isStore && cart"
        flat
        :to="{ name: 'store/Cart' }"
        active-class="btn"
      )
        v-badge(color="red" left :value="cart.lineItems.length")
          template(slot="badge") {{ cart.lineItems.length }}
          v-icon(left) shopping_cart
        span {{ $t('Vuetify.AppToolbar.cart' )}}
</template>

<script>
  // Utilities
  import { mapState } from 'vuex'
  import asyncData from '@/util/asyncData'
  import languages from '@/i18n/languages'

  export default {
    mixins: [asyncData],

    asyncData ({ store, route }) {
      return store.state.store.cart && route.name.startsWith('store/')
        ? Promise.resolve()
        : store.dispatch('store/getCheckout')
    },

    data: vm => ({
      ecosystems: vm.$t('Vuetify.AppToolbar.ecosystems'),
      fixed: false,
      languages,
      socials: vm.$t('Vuetify.AppToolbar.socials')
    }),

    computed: {
      ...mapState('app', [
        'appToolbar',
        'isFullscreen',
        'releases',
        'stateless'
      ]),
      ...mapState('store', {
        cart: state => state.checkout
      }),
      ...mapState(['currentVersion', 'route']),
      backPath () {
        return this.route.from.path === '/'
          ? { name: 'getting-started/QuickStart' }
          : this.route.from.path
      },
      currentLanguage () {
        return this.languages.find(l => l.locale === this.$i18n.locale)
      },
      isHome () {
        return this.route.name === 'Home'
      },
      isManualScrolled () {
        return !this.isHome &&
          this.isFullscreen
      },
      isStore () {
        return this.$route.name.startsWith('store/')
      }
    },

    methods: {
      changeToRelease (release) {
        // Remove language setting
        const path = this.$route.fullPath.split('/')
          .slice(2)
          .join('/')
        window.location.href = `${window.location.origin}/releases/${release}/#/${path}`
      },
      translateI18n (lang) {
        this.$router.replace({ params: { lang } })
        document.cookie = `currentLanguage=${lang};path=/;max-age=${60 * 60 * 24 * 7}` // expires in 7 days
      }
    }
  }
</script>

<style lang="stylus">
  #app-toolbar
    .toolbar__title
      margin-left .5em
      font-weight 300
      font-size 21px
      position relative
      top 1px

    .toolbar__items
      .btn
        text-transform capitalize
        font-size 16px
        font-weight 300
</style>

<template lang="pug">
  v-toolbar(
    color="primary"
    app
    dark
    fixed
    scroll-off-screen
    height="58px"
    :manual-scroll="isManualScrolled"
    :inverted-scroll="isHome"
    ref="toolbar"
  )#app-toolbar
    v-toolbar-side-icon(
      @click="$store.commit('app/DRAWER_TOGGLE')"
      v-show="!stateless && $vuetify.breakpoint.mdAndDown"
    )
    router-link(:to="{ name: 'Home' }").d-flex.ml-3
      img(
        src="/static/v-alt.svg"
        height="38px"
        width="38px"
      )

    v-fade-transition(mode="out-in")
      v-btn(flat :to="backPath" v-if="$route.path.name === 'store/Index'")
        v-icon(left) mdi-arrow-left
        span {{ $t('Vuetify.AppToolbar.backToDocs' )}}
      v-toolbar-title(v-else).pb-1.hidden-xs-only Vuetify

    v-spacer
    v-toolbar-items
      v-btn(
        flat
        v-show="isHome"
        :to="{ name: 'getting-started/QuickStart' }"
      )
        span.hidden-md-and-up {{ $t('Vuetify.AppToolbar.docs' )}}
        span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.documentation' )}}
      v-menu(
        bottom
        offset-y
        left
        attach
        v-show="!isStore"
      )
        v-btn(
          slot="activator"
          flat
          style="min-width: 64px"
        )
          img(
            :src="`http://www.countryflags.io/${currentLanguage.country}/flat/32.png`"
            width="32px"
          )
        v-list(light)
          v-list-tile(
            avatar
            v-for="language in languages"
            :key="language.locale"
            @click="translateI18n(language.locale)"
          )
            v-list-tile-avatar(size="24px").avatar--tile
              img(
                :src="`//www.countryflags.io/${language.country}/flat/24.png`"
                width="24px"
              )
            v-list-tile-title {{language.title}}
    v-toolbar-items
      v-btn(
        flat
        style="min-width: 64px"
        v-show="!isStore"
        :to="{ name: 'store/Index' }"
      )
        span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.store' )}}
        v-icon(:right="$vuetify.breakpoint.mdAndUp") store

    v-toolbar-items
      v-menu(
        attach
        bottom
        left
        offset-y
        v-show="!isStore"
      )
        v-btn(
          flat
          slot="activator"
          style="min-width: 64px"
        )
          span.hidden-sm-and-down {{ $t('Vuetify.AppToolbar.ecosystem' )}}
          v-icon(:right="$vuetify.breakpoint.mdAndUp") mdi-earth
        v-list(light)
          v-subheader(light) {{ $t('Vuetify.AppToolbar.quickLinks' )}}
          v-list-tile(
            target="_blank"
            rel="noopener"
            v-for="ecosystem in ecosystems"
            :href="ecosystem.href"
            :key="ecosystem.text"
          )
            v-list-tile-action
              v-icon(light) {{ ecosystem.icon }}
            v-list-tile-content
              v-list-tile-title {{ ecosystem.text }}
          v-divider(light)
          v-subheader(light) {{ $t('Vuetify.AppToolbar.social' )}}
          v-list-tile(
            target="_blank"
            rel="noopener"
            v-for="social in socials"
            :href="social.href"
            :key="social.text"
          )
            v-list-tile-action
              v-icon(light) {{ social.icon }}
            v-list-tile-content
              v-list-tile-title {{ social.text }}

      v-menu(
        bottom
        offset-y
        attach
        v-show="!isStore"
      ).hidden-xs-only
        v-btn(
          slot="activator"
          flat
        )
          span {{ currentVersion }}
          v-icon(right) keyboard_arrow_down
        v-list(light)
          v-list-tile(
            v-for="release in releases"
            :key="release"
            @click="changeToRelease(release)"
          )
            v-list-tile-avatar
              v-icon(light) mdi-package
            v-list-tile-content
              v-list-tile-title {{ release }}

      v-btn(
        v-if="isStore && cart"
        flat
        :to="{ name: 'store/Cart' }"
        active-class="btn"
      )
        v-badge(color="red" left :value="cart.lineItems.length")
          template(slot="badge") {{ cart.lineItems.length }}
          v-icon(left) shopping_cart
        span {{ $t('Vuetify.AppToolbar.cart' )}}
</template>

<script>
  // Utilities
  import { mapState } from 'vuex'
  import asyncData from '@/util/asyncData'
  import languages from '@/i18n/languages'

  export default {
    mixins: [asyncData],

    asyncData ({ store, route }) {
      return store.state.store.cart && route.name.startsWith('store/')
        ? Promise.resolve()
        : store.dispatch('store/getCheckout')
    },

    data: vm => ({
      ecosystems: vm.$t('Vuetify.AppToolbar.ecosystems'),
      fixed: false,
      languages,
      socials: vm.$t('Vuetify.AppToolbar.socials')
    }),

    computed: {
      ...mapState('app', [
        'appToolbar',
        'isFullscreen',
        'releases',
        'stateless'
      ]),
      ...mapState('store', {
        cart: state => state.checkout
      }),
      ...mapState(['currentVersion', 'route']),
      backPath () {
        return this.route.from.path === '/'
          ? { name: 'getting-started/QuickStart' }
          : this.route.from.path
      },
      currentLanguage () {
        return this.languages.find(l => l.locale === this.$i18n.locale)
      },
      isHome () {
        return this.route.name === 'Home'
      },
      isManualScrolled () {
        return !this.isHome &&
          this.isFullscreen
      },
      isStore () {
        return this.$route.name.startsWith('store/')
      }
    },

    methods: {
      changeToRelease (release) {
        // Remove language setting
        const path = this.$route.fullPath.split('/')
          .slice(2)
          .join('/')
        window.location.href = `${window.location.origin}/releases/${release}/#/${path}`
      },
      translateI18n (lang) {
        this.$router.replace({ params: { lang } })
        document.cookie = `currentLanguage=${lang};path=/;max-age=${60 * 60 * 24 * 7}` // expires in 7 days
      }
    }
  }
</script>

<style lang="stylus">
  #app-toolbar
    .toolbar__title
      margin-left .5em
      font-weight 300
      font-size 21px
      position relative
      top 1px

    .toolbar__items
      .btn
        text-transform capitalize
        font-size 16px
        font-weight 300
</style>


docs: improve heading styles

docs: improve heading styles

<template functional>
  <core-goto class="core-goto--heading">
    <doc-markdown><slot /></doc-markdown>
  </core-goto>
</template>

<style lang="stylus">
.core-goto--heading {
  h1 {
    font-size: 32px;
    font-weight: 400;
  }

  h2 {
    font-size: 24px;
    font-weight: 400;
  }

  h3 {
    font-size: 16px;
    font-weight: 500;
  }
}
</style>

<template functional>
  <core-goto>
    <doc-markdown><slot /></doc-markdown>
  </core-goto>
</template>


test commit

test commit

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/movethink/hehehe.git/'


add tooltip of username and type

add tooltip of username and type

<template>

  <ui-toolbar
    :title="title"
    type="colored"
    textColor="white"
    class="app-bar"
    :removeNavIcon="navShown"
    @nav-icon-click="$emit('toggleSideNav')"
    :style="{ height: height + 'px' }">
    <div slot="actions">
      <slot name="app-bar-actions"/>
      <ui-icon-button
        v-if="isUserLoggedIn"
        icon="person"
        type="secondary"
        color="white"
        :ariaLabel="$tr('account')"
        :title="userTooltip"
        has-dropdown
        ref="accountButton">
        <ui-menu
          contain-focus
          contains-icons
          slot="dropdown"
          :options="accountMenuOptions"
          @close="$refs.accountButton.closeDropdown()"
          @select="optionSelected"/>
      </ui-icon-button>
      <a v-else href="/user">
        <ui-button
          type="secondary"
          :ariaLabel="$tr('signIn')"
          class="appbarbutton">
          {{ $tr('signIn') }}
        </ui-button>
      </a>
    </div>
  </ui-toolbar>

</template>

<script>

  const kolibriLogout = require('kolibri.coreVue.vuex.actions').kolibriLogout;
  const isUserLoggedIn = require('kolibri.coreVue.vuex.getters').isUserLoggedIn;
  const isSuperuser = require('kolibri.coreVue.vuex.getters').isSuperuser;
  const isAdmin = require('kolibri.coreVue.vuex.getters').isAdmin;
  const isCoach = require('kolibri.coreVue.vuex.getters').isCoach;
  const isLearner = require('kolibri.coreVue.vuex.getters').isUserLoggedIn;

  module.exports = {
    $trNameSpace: 'appBar',
    $trs: {
      account: 'Account',
      editProfile: 'Edit Profile',
      signOut: 'Sign Out',
      signIn: 'Sign In',
      learnerDetails: '{username} (Learner)',
      coachDetails: '{username} (Coach)',
      adminDetails: '{username} (Admin)',
      superuserDetails: '{username} (Device Owner)',
    },
    props: {
      title: {
        type: String,
        required: true,
      },
      navShown: {
        type: Boolean,
        required: true,
      },
      height: {
        type: Number,
        required: true,
      },
    },
    components: {
      'ui-toolbar': require('keen-ui/src/UiToolbar'),
      'ui-icon-button': require('keen-ui/src/UiIconButton'),
      'ui-menu': require('keen-ui/src/UiMenu'),
      'ui-button': require('keen-ui/src/UiButton'),
    },
    computed: {
      userTooltip() {
        if (this.isSuperuser) {
          return this.$tr('superuserDetails', { username: this.username });
        }
        if (this.isAdmin) {
          return this.$tr('adminDetails', { username: this.username });
        }
        if (this.isCoach) {
          return this.$tr('coachDetails', { username: this.username });
        }
        if (this.isLearner) {
          return this.$tr('learnerDetails', { username: this.username });
        }
        return '';
      },
      accountMenuOptions() {
        return [
          {
            id: 'editProfile',
            label: this.$tr('editProfile'),
          },
          {
            id: 'signOut',
            label: this.$tr('signOut'),
          },
        ];
      },
    },
    methods: {
      optionSelected(option) {
        switch (option.id) {
          case 'editProfile':
            window.location = `/user`;
            break;
          case 'signOut':
            this.kolibriLogout();
            break;
          default:
            break;
        }
      },
    },
    vuex: {
      actions: {
        kolibriLogout,
      },
      getters: {
        username: state => state.core.session.username,
        isUserLoggedIn,
        isSuperuser,
        isAdmin,
        isCoach,
        isLearner,
      },
    },
  };

</script>

<style lang="stylus">

  .app-bar .appbarbutton
    color: white
    &:hover
      background-color: rgba(0, 0, 0, 0.1)
    &.has-dropdown-open
      background-color: rgba(0, 0, 0, 0.1)

</style>

<template>

  <ui-toolbar
    :title="title"
    type="colored"
    textColor="white"
    class="app-bar"
    :removeNavIcon="navShown"
    @nav-icon-click="$emit('toggleSideNav')"
    :style="{ height: height + 'px' }">
    <div slot="actions">
      <slot name="app-bar-actions"/>
      <ui-icon-button
        v-if="isUserLoggedIn"
        icon="person"
        type="secondary"
        color="white"
        :ariaLabel="$tr('account')"
        has-dropdown
        ref="accountButton">
        <ui-menu
          contain-focus
          contains-icons
          slot="dropdown"
          :options="accountMenuOptions"
          @close="$refs.accountButton.closeDropdown()"
          @select="optionSelected"/>
      </ui-icon-button>
      <a v-else href="/user">
        <ui-button
          type="secondary"
          :ariaLabel="$tr('signIn')"
          class="appbarbutton">
          {{ $tr('signIn') }}
        </ui-button>
      </a>
    </div>
  </ui-toolbar>

</template>

<script>

  const kolibriLogout = require('kolibri.coreVue.vuex.actions').kolibriLogout;
  const isUserLoggedIn = require('kolibri.coreVue.vuex.getters').isUserLoggedIn;

  module.exports = {
    $trNameSpace: 'appBar',
    $trs: {
      account: 'Account',
      editProfile: 'Edit Profile',
      signOut: 'Sign Out',
      signIn: 'Sign In',
    },
    props: {
      title: {
        type: String,
        required: true,
      },
      navShown: {
        type: Boolean,
        required: true,
      },
      height: {
        type: Number,
        required: true,
      },
    },
    components: {
      'ui-toolbar': require('keen-ui/src/UiToolbar'),
      'ui-icon-button': require('keen-ui/src/UiIconButton'),
      'ui-menu': require('keen-ui/src/UiMenu'),
      'ui-button': require('keen-ui/src/UiButton'),
    },
    computed: {
      accountMenuOptions() {
        return [
          {
            id: 'editProfile',
            label: this.$tr('editProfile'),
          },
          {
            id: 'signOut',
            label: this.$tr('signOut'),
          },
        ];
      },
    },
    methods: {
      optionSelected(option) {
        switch (option.id) {
          case 'editProfile':
            window.location = `/user`;
            break;
          case 'signOut':
            this.kolibriLogout();
            break;
          default:
            break;
        }
      },
    },
    vuex: {
      actions: {
        kolibriLogout,
      },
      getters: {
        isUserLoggedIn,
      },
    },
  };

</script>

<style lang="stylus">

  .app-bar .appbarbutton
    color: white
    &:hover
      background-color: rgba(0, 0, 0, 0.1)
    &.has-dropdown-open
      background-color: rgba(0, 0, 0, 0.1)

</style>


Renames list prop to listData

Renames list prop to listData


fix(home): use correct name for homepage

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/arnoschutijzer/arnoschutijzer.github.io.git/'


Use atomic classes instead of css

Use atomic classes instead of css

<template>

    close

Newsletter

      <form>

Sign up to our newsletter and receive a coupon for 10% off!

          <input class="brdr-none py10 h4 weight-200" type="email" name="email" v-model="email" placeholder="E-mail address *">

Field is required.

Please provide valid e-mail address.

          <button-full class="btn-full p0" text="Subscribe" @click.native="sendEmail"></button-full>

      </form>

</template>

<template>

    close

Newsletter

      <form>

Sign up to our newsletter and receive a coupon for 10% off!

          <input type="email" name="email" v-model="email" placeholder="E-mail address *">
          Field is required.
          Please provide valid e-mail address.

          <button-full class="btn-full p0" text="Subscribe" @click.native="sendEmail"></button-full>

      </form>

</template>


remove unused css

remove unused css

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/l10178/grapes.git/'


解决路由NANbug

解决路由NANbug

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/3tnet/t-cms.git/'


feat(groups): add periods relation to groups (#92)

* Add Periods relation in Groups management

* Only display periods of the selected event

* Unallow admin to add an user to a group on the same period

* Fix errors

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/buckless-team/admin.git/'


Add Window Size

Add Window Size


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/'


identity url source from wiki

identity url source from wiki

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/JaredNie/vue2-wiki.git/'


Fix UI glitch

Fix UI glitch

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/'


Checkout channel-grid component

Checkout channel-grid component

<template>

          {{ $tr('nameHeader') }}
          {{ $tr('numContentsHeader') }}
          {{ $tr('sizeHeader') }}
          {{ $tr('lastUpdatedHeader') }}

          {{ channel.title }}

            <ui-progress-circular
              color="primary"
              v-show="!numberOfFilesInChannel(channel.id)"
            />
            {{ numberOfFilesInChannel(channel.id) }}

          {{ totalSizeOfFilesInChannel(channel.id) }}
          {{ lastUpdatedDate(channel.id) }}

            <button
              @click="selectedChannelIdx=idx"
              class="delete-button"
            >
              {{ $tr('delete') }}
            </button>

    <modal
      title="Delete channel"
      v-if="channelIsSelected"
      @cancel="selectedChannelIdx=null"
    >

Are you sure you want to delete {{ selectedChannelTitle }} and its contents?

To restore this channel, you will need to re-import it from the internet or storage device.

        <ui-button type="secondary" @click="selectedChannelIdx=null">Cancel</ui-button>
        <ui-button type="primary" color="primary" @click="handleDeleteChannel()">Confirm</ui-button>

    </modal>

</template>

error: pathspec 'kolibri/plugins/management/assets/src/views/manage-content-page/channels-grid.vue' did not match any file(s) known to git


kleine opkuis om nieuwe blokken aan te maken

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/JorisH/LoLItemsetBuilder.git/'


feat(Profile): add component to group all components related to user details

<template>

                        <user></user>

                        <repositories></repositories>

Latest Commits

                <commits></commits>

</template>

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


Fix blog post image meta validation

Fix blog post image meta validation

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/'


small changees to edit view 🐯

small changees to edit view 🐯

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/The-Jetsetters/Jetsetter-App.git/'


Sorting command progress and refresh functionality

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/callensm/parking-monitor.git/'


优化bui-icon，去掉对he的依赖，减轻js体积

优化bui-icon，去掉对he的依赖，减轻js体积

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/bingo-oss/bui-weex.git/'


Full screen carousel on mobile

Full screen carousel on mobile


typo bugfix

typo 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/LinusBorg/vue-component-droparea.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/'


add Toast

add Toast

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


add new link view

add new link view

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/Luncher/BlogAdmin.git/'


Adjust hr element styling

Adjust hr element styling

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/stefanjudis/stefan-judis-website.git/'


Create bak file

Create bak file

<template>

      <slot name="top from topText">

{{ topText }}

      </slot>
      <slot></slot>
      <slot name="bottom from bottomText">

{{ bottomText }}

      </slot>

</template>

error: pathspec 'src/vue-fast-scroll_bak.vue' did not match any file(s) known to git


fix preview

fix preview

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/'


Fix form

Fix form


autoload

autoload

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/chrisamow/url-ingstad.git/'


Only display length id data is available

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/starmage/my-movies.git/'


fix typo

fix typo

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/w33ble/loopback-vue-app.git/'


Add karta poselka

Add karta poselka

<template>

 <router-link class="gs-breadcrumb__link" :to="{ name: 'Home' }"> GS Гусев </router-link>

 Карта поселка

    // TODO: https://www.npmjs.com/package/vue2-leaflet

</template>

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


Improve explore by not showing stuff when nobody's been searched

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/'


add event micorformat

add event micorformat


Added missing properties and new demo to step docs

* Added missing properties to the md-step documentation
* New demo for md-error (with email validation)

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/'


simplify inline checkbox example

simplify inline checkbox example

<template>
  <v-card>
    <v-card-text>
      <v-layout align-center>
        <v-checkbox v-model="includeFiles" hide-details class="shrink mr-2"></v-checkbox>
        <v-text-field label="Include files"></v-text-field>
      </v-layout>
      <v-layout align-center>
        <v-checkbox v-model="enabled" hide-details class="shrink mr-2"></v-checkbox>
        <v-text-field label="I only work if you check the box" :disabled="!enabled"></v-text-field>
      </v-layout>
    </v-card-text>
  </v-card>
</template>

<script>
  export default {
    data: () => ({
      includeFiles: true,
      enabled: false
    })
  }
</script>

<template>
  <v-card>
    <v-card-text>
      <v-container fluid grid-list-md>
        <v-layout align-center>
          <v-flex class="shrink">
            <v-checkbox
              v-model="ex5"
              hide-details
            ></v-checkbox>
          </v-flex>
          <v-flex>
            <v-text-field label="Include files"></v-text-field>
          </v-flex>
        </v-layout>
        <v-layout align-center>
          <v-flex class="shrink">
            <v-checkbox
              v-model="ex6"
              hide-details
            ></v-checkbox>
          </v-flex>
          <v-flex>
            <v-text-field
              label="I only work if you check the box"
              :disabled="!ex6"
            ></v-text-field>
          </v-flex>
        </v-layout>
      </v-container>
    </v-card-text>
  </v-card>
</template>

<script>
  export default {
    data () {
      return {
        ex5: true,
        ex6: false
      }
    }
  }
</script>


新增 插屏弹窗 模板(感谢网友hcoder-深海)

新增 插屏弹窗 模板(感谢网友hcoder-深海)

<template>
    <view>
        <page-head :title="title"></page-head>
        <view style="padding:200upx 15%;">
            <button type="primary" @tap="showBanner">打开弹窗</button>
        </view>
        <!-- 弹出层 -->
        <view class="grace-banner" style="background:#FFFFFF;" v-if="bannerShow">
            <view style="justify-content:flex-end;" @tap="closeBanner">
                <view style="justify-content:flex-end; text-align:right; padding:20upx;">
                    <text class="uni-icon uni-icon-close"></text>
                </view>
            </view>
            <view>
                <image src="https://img-cdn-qiniu.dcloud.net.cn/uniapp/images/shuijiao.jpg" style="width:100%;" mode="widthFix"></image>
            </view>
            <view style="padding:50upx 0; padding-bottom:68upx;">
                <button type='warn' class="mini-btn" style="background:#F6644D; margin:0 80upx;">一个按钮</button>
            </view>
        </view>
        <view class="grace-mask" v-if="bannerShow"></view>
        <!-- 弹出层 -->
    </view>
</template>
<script>
    export default {
        data() {
            return {
                title: '插屏弹窗',
                bannerShow: true
            }
        },
        onBackPress() {
        	if (this.bannerShow) {
        		this.bannerShow = false;
        		return true;
        	}
        },
        methods: {
            closeBanner: function() {
                this.bannerShow = false;
            },
            showBanner: function() {
                this.bannerShow = true;
            },
        }
    }
</script>

<style>
    /* 遮罩层 */
    .grace-mask {
        background: rgba(0, 0, 0, 0.6);
        position: fixed;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        z-index: 1;
    }

    /* 弹出层形式的广告 */
    .grace-banner {
        width: 70%;
        position: fixed;
        left: 50%;
        top: 50%;
        background: #FFF;
        border-radius: 10upx;
        z-index: 99;
        transform: translate(-50%, -50%);
    }
</style>

error: pathspec 'examples/hello-uniapp/pages/template/sbanner/sbanner.vue' did not match any file(s) known to git


Added moso-drawer-list

Added moso-drawer-list

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/moso/moso-vue.git/'


update finder title

update finder title

<template>

{{ '{0} %count% Files|{1} %count% File|]1,Inf[ %count% Files' | transChoice count {count:count} }}

{{ '{1} %count% File selected|]1,Inf[ %count% Files selected' | transChoice selected.length {count:selected.length} }}

                        <input class="uk-search-field" type="text" v-model="search">

                    {{ 'Upload' | trans }}
                    <input type="file" name="files[]" multiple="multiple">

                <button class="uk-button" v-on="click: createFolder()">{{ 'Add Folder' | trans }}</button>

                    <button class="uk-button uk-icon-bars" v-class="'uk-active': view == 'table'"     v-on="click: view = 'table'"></button>
                    <button class="uk-button uk-icon-th"   v-class="'uk-active': view == 'thumbnail'" v-on="click: view = 'thumbnail'"></button>

                {{ title }}
                {{ title }}

{{ upload.progress }}%

            {{ 'No files.' | trans }}

             {{ 'Drop files here.' | trans }}

</template>

<template>

{{ 'Finder' | trans }}

                        <input class="uk-search-field" type="text" v-model="search">

                    {{ 'Upload' | trans }}
                    <input type="file" name="files[]" multiple="multiple">

                <button class="uk-button" v-on="click: createFolder()">{{ 'Add Folder' | trans }}</button>

                    <button class="uk-button uk-icon-bars" v-class="'uk-active': view == 'table'"     v-on="click: view = 'table'"></button>
                    <button class="uk-button uk-icon-th"   v-class="'uk-active': view == 'thumbnail'" v-on="click: view = 'thumbnail'"></button>

                {{ title }}
                {{ title }}

{{ upload.progress }}%

            {{ 'No files.' | trans }}

             {{ 'Drop files here.' | trans }}

</template>