Timezone page component 90% complete.

Timezone page component 90% complete.

TODO:
add links to individual server portions

<template>

      North America

          Server

            {{column | format}}

            {{getWorldById(server.server).name}}

          {{server['na_est']}}
          {{server['na_pst']}}
          {{server['eu']}}
          {{server['ocx']}}
          {{server['sea']}}

           Data not available yet.

      Europe

          Server

            {{column | format}}

            {{getWorldById(server.server).name}}

          {{server['na_est']}}
          {{server['na_pst']}}
          {{server['eu']}}
          {{server['ocx']}}
          {{server['sea']}}

           Data not available yet.

</template>

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


Replaces copyright icon with copyright symbol

<template>

        <ui-icon-button
          @click="toggleNav"
          type="secondary"
          color="white"
          size="large"
          icon="keyboard_arrow_left"
          :aria-label="closeNav"/>
        <ui-icon class="header-logo"><logo/></ui-icon>
        Kolibri

      <div class="scrollable-nav" :style="{ width: width + 'px', paddingTop: `${headerHeight + 16}px` }">
        <ui-menu
          class="nav-main"
          :options="menuOptions"
          hasIcons
          @select="navigate"
          role="navigation"
          :aria-label="ariaLabel"
          :style="{ width: width + 'px' }">
        </ui-menu>

        <logo
          class="logo"
          :style="{ width: width/6 + 'px', height: width/6 + 'px', marginLeft: width/20 + 'px', marginRight: width/20 + 'px' }"/>

{{ footerMsg }}

            ©
            {{ $tr('learningEqualityCopyright') }}

</template>

<template>

        <ui-icon-button
          @click="toggleNav"
          type="secondary"
          color="white"
          size="large"
          icon="keyboard_arrow_left"
          :aria-label="closeNav"/>
        <ui-icon class="header-logo"><logo/></ui-icon>
        Kolibri

      <div class="scrollable-nav" :style="{ width: width + 'px', paddingTop: `${headerHeight + 16}px` }">
        <ui-menu
          class="nav-main"
          :options="menuOptions"
          hasIcons
          @select="navigate"
          role="navigation"
          :aria-label="ariaLabel"
          :style="{ width: width + 'px' }">
        </ui-menu>

        <logo
          class="logo"
          :style="{ width: width/6 + 'px', height: width/6 + 'px', marginLeft: width/20 + 'px', marginRight: width/20 + 'px' }"/>

{{ footerMsg }}

            <ui-icon icon="copyright"/>
            {{ $tr('learningEqualityCopyright') }}

</template>


Added popup provider mixin.

Added popup provider mixin.

<script>
    import PopperJS from 'popper.js';
    import { PopupManager } from '../../helpers/popup-manager';

    /**
     * @param {HTMLElement} [reference=$refs.reference] - The reference element used to position the popper.
     * @param {HTMLElement} [popper=$refs.popper] - The HTML element used as popper, or a configuration used to generate the popper.
     * @param {String} [placement=button] - Placement of the popper accepted values: top(-start, -end), right(-start, -end), bottom(-start, -end), left(-start, -end)
     * @param {Number} [offset=0] - Amount of pixels the popper will be shifted (can be negative).
     * @param {Boolean} [visible=false] Visibility of the popup element.
     * @param {Boolean} [visible-arrow=false] Visibility of the arrow, no style.
     */
    export default {
        props: {
            transformOrigin: {
                type: [Boolean, String],
                default: true
            },
            placement: {
                type: String,
                default: 'bottom'
            },
            boundariesPadding: {
                type: Number,
                default: 5
            },
            reference: {},
            popper: {},
            offset: {
                default: 0
            },
            value: Boolean,
            visibleArrow: Boolean,
            arrowOffset: {
                type: Number,
                default: 35
            },
            appendToBody: {
                type: Boolean,
                default: true
            },
            popperOptions: {
                type: Object,
                default() {
                    return {
                        gpuAcceleration: false
                    };
                }
            }
        },

        data() {
            return {
                showPopper: false,
                currentPlacement: ''
            };
        },

        watch: {
            value: {
                immediate: true,
                handler(val) {
                    this.showPopper = val;

                    this.$emit('input', val);
                }
            },

            showPopper(val) {
                if (this.disabled) {
                    return;
                }

                val ? this.updatePopper() : this.destroyPopper();

                this.$emit('input', val);
            }
        },

        methods: {
            createPopper() {
                if (this.$isServer) return;

                this.currentPlacement = this.currentPlacement || this.placement;
                if (!/^(top|bottom|left|right)(-start|-end)?$/g.test(this.currentPlacement)) {
                    return;
                }

                const options = this.popperOptions;
                const popper = this.popperElm = this.popperElm || this.popper || this.$refs.popper;
                let reference = this.referenceElm = this.referenceElm || this.reference || this.$refs.reference;

                if (!reference &&
                    this.$slots.reference &&
                    this.$slots.reference[0]) {
                    reference = this.referenceElm = this.$slots.reference[0].elm;
                }

                if (!popper || !reference) return;

                if (this.visibleArrow) this.appendArrow(popper);
                if (this.appendToBody) document.body.appendChild(this.popperElm);
                if (this.popperJS && this.popperJS.destroy) {
                    this.popperJS.destroy();
                }

                options.placement = this.currentPlacement;
                options.offset = this.offset;
                options.arrowOffset = this.arrowOffset;

                this.popperJS = new PopperJS(reference, popper, options);

                this.popperJS.onCreate(() => {
                    this.$emit('created', this);
                    this.resetTransformOrigin();
                    this.$nextTick(this.updatePopper);
                });

                if (typeof options.onUpdate === 'function') {
                    this.popperJS.onUpdate(options.onUpdate);
                }

                this.popperJS._popper.style.zIndex = PopupManager.nextZIndex();
                this.popperElm.addEventListener('click', (e) => e.stopPropagation());
            },

            updatePopper() {
                const popperJS = this.popperJS;

                if (popperJS) {
                    popperJS.update();

                    if (popperJS._popper) {
                        popperJS._popper.style.zIndex = PopupManager.nextZIndex();
                    }
                } else {
                    this.createPopper();
                }
            },

            doDestroy(forceDestroy) {
                if (!this.popperJS || (this.showPopper && !forceDestroy)) return;

                this.popperJS.destroy();
                this.popperJS = null;
            },

            destroyPopper() {
                if (this.popperJS) {
                    this.resetTransformOrigin();
                }
            },

            resetTransformOrigin() {
                if (!this.transformOrigin) return;

                let placementMap = {
                    top: 'bottom',
                    bottom: 'top',
                    left: 'right',
                    right: 'left'
                };
                let placement = this.popperJS._popper.getAttribute('x-placement').split('-')[0];
                let origin = placementMap[placement];

                this.popperJS._popper.style.transformOrigin = typeof this.transformOrigin === 'string'
                    ? this.transformOrigin
                    : ['top', 'bottom'].indexOf(placement) > -1 ? `center ${ origin }` : `${ origin } center`;
            },

            appendArrow(element) {
                let hash;

                if (this.appended) {
                    return;
                }

                this.appended = true;

                for (let item in element.attributes) {
                    if (/^_v-/.test(element.attributes[item].name)) {
                        hash = element.attributes[item].name;
                        break;
                    }
                }

                const arrow = document.createElement('div');

                if (hash) {
                    arrow.setAttribute(hash, '');
                }
                arrow.setAttribute('x-arrow', '');
                arrow.className = 'popper__arrow';
                element.appendChild(arrow);
            }
        },

        beforeDestroy() {
            this.doDestroy(true);

            if (this.popperElm && this.popperElm.parentNode === document.body) {
                this.popperElm.removeEventListener('click', (e) => e.stopPropagation());
                document.body.removeChild(this.popperElm);
            }
        },

        // call destroy in keep-alive mode
        deactivated() {
            this.$options.beforeDestroy[0].call(this);
        }
    };
</script>

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


Use router push instead router-link

Use router push instead router-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/zhaoyingjie/newBlog_Frontend.git/'


only changed data can be request

only changed data can be request

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


Added filter and search (plain and regex) to policy listing

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


Add radio button to toggle diffs

Add radio button to toggle diffs


Minor adjustments to Cardlsit

Minor adjustments to Cardlsit

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/soanvig/hptcg-deck-builder.git/'


Added fun component

Added fun component

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


initial CreateLink view

initial CreateLink view

<template>

      <input
        class="mb2"
        v-model="description"
        type="text"
        placeholder="A description for the link">
      <input
        class="mb2"
        v-model="url"
        type="text"
        placeholder="The URL for the link">
      <button @click="createLink">Submit</button>

</template>

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


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


Optimized component for cartcontrol

Optimized component for cartcontrol

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/VOREVER/Vue-Sell.git/'


resolves #266

resolves #266

<script>
  export default {
    name: 'AppTableOfContents',

    props: {
      discovery: {
        type: Boolean,
        default: false
      },
      items: {
        type: Array,
        default: () => ([])
      },
      threshold: {
        type: [Number, String],
        required: true
      }
    },

    data: () => ({
      currentOffset: 0,
      position: 'relative',
      right: 0,
      top: 0,
      list: [],
      isBooted: false
    }),

    computed: {
      activeIndex () {
        const list = this.list.slice().reverse()
        const index = list.findIndex(item => item.offsetTop - 100 < this.currentOffset)

        return index > -1
          ? list.length - 1 - index
          : 0
      },
      styles () {
        return {
          position: this.position,
          top: `${parseInt(this.top)}px`
        }
      }
    },

    watch: {
      isBooted () {
        this.genList()
      }
    },

    mounted () {
      setTimeout(() => {
        this.$el.setAttribute('data-booted', true)
        this.isBooted = true
      }, 200)
    },

    methods: {
      genItem (item, index) {
        item = item || {}
        const isActive = this.activeIndex === index
        const vm = this

        return this.$createElement('li', [
          this.$createElement('a', {
            staticClass: 'subheading mb-3 d-block',
            'class': {
              'primary--text': isActive,
              'grey--text text--darken-1': !isActive
            },
            style: {
              borderLeft: `2px solid ${isActive ? this.$vuetify.theme.primary : 'transparent'}`
            },
            props: { href: '#' },
            domProps: { innerText: item.text },
            on: {
              click (e) {
                e.stopPropagation()
                e.preventDefault()

                const goTo = index === 0
                  ? 0
                  : `#${item.href}`

                vm.$vuetify.goTo(goTo)
              }
            }
          })
        ])
      },
      genList () {
        const list = []

        for (let item of this.items) {
          item = Object.assign({}, item)

          const target = item.target ||
            document.getElementById(item.href)

          if (target) {
            item.offsetTop = target.offsetTop
            item.target = target

            list.push(item)
          }
        }

        this.list = list
      },
      onScroll () {
        this.currentOffset = window.pageYOffset ||
          document.documentElement.offsetTop

        const shouldFloat = this.currentOffset >= this.threshold

        this.position = shouldFloat ? 'fixed' : 'relative'
        this.top = shouldFloat ? 85 : 0
        this.isBooted = true

        requestAnimationFrame(this.genList)
      }
    },

    render (h) {
      const data = {
        staticClass: 'app-table-of-contents',
        style: this.styles,
        directives: [{
          name: 'scroll',
          value: this.onScroll
        }],
        attrs: this.$attrs,
        listeners: this.$listeners
      }

      let children = []

      if (this.list.length) {
        children = children.concat(this.list.map((item, i) => this.genItem(item, i)))
      }

      if (this.$slots.default) {
        children.push(this.$slots.default)
      }

      if (this.$slots.top) {
        children.unshift(this.$slots.top)
      }

      return h('ul', data, children)
    }
  }
</script>

<style lang="stylus">
  .app-table-of-contents
    list-style-type: none
    margin: 0 24px
    width: 200px

    li > a
      padding-left: 18px
      text-decoration: none
      border-left: 2px solid transparent
      transition: color .1s ease-in
</style>

<script>
  export default {
    name: 'AppTableOfContents',

    props: {
      discovery: {
        type: Boolean,
        default: false
      },
      items: {
        type: Array,
        default: () => ([])
      },
      threshold: {
        type: [Number, String],
        required: true
      }
    },

    data: () => ({
      currentOffset: 0,
      position: 'relative',
      right: 0,
      top: 0,
      list: [],
      isBooted: false
    }),

    computed: {
      activeIndex () {
        const list = this.list.slice().reverse()
        const index = list.findIndex(item => item.offsetTop - 100 < this.currentOffset)

        return index > -1
          ? list.length - 1 - index
          : 0
      },
      styles () {
        return {
          position: this.position,
          top: `${parseInt(this.top)}px`
        }
      }
    },

    watch: {
      isBooted () {
        this.genList()
      }
    },

    mounted () {
      setTimeout(() => {
        this.$el.setAttribute('data-booted', true)
        this.isBooted = true
      }, 200)
    },

    methods: {
      genItem (item, index) {
        item = item || {}
        const isActive = this.activeIndex === index

        return this.$createElement('li', [
          this.$createElement('router-link', {
            staticClass: 'subheading mb-3 d-block',
            'class': {
              'primary--text': isActive,
              'grey--text text--darken-1': !isActive
            },
            style: {
              borderLeft: `2px solid ${isActive ? this.$vuetify.theme.primary : 'transparent'}`
            },
            props: {
              to: { hash: `#${item.href}` }
            },
            domProps: {
              innerText: item.text
            }
          })
        ])
      },
      genList () {
        const list = []

        for (let item of this.items) {
          item = Object.assign({}, item)

          const target = item.target
            ? item.target
            : document.getElementById(item.href)

          if (target) {
            const offsetTop = target.offsetTop

            item.offsetTop = offsetTop
            item.target = target

            list.push(item)
          }
        }

        this.list = list
      },
      onScroll () {
        this.currentOffset = window.pageYOffset ||
          document.documentElement.offsetTop

        const shouldFloat = this.currentOffset >= this.threshold

        this.position = shouldFloat ? 'fixed' : 'relative'
        this.top = shouldFloat ? 85 : 0
        this.isBooted = true
      }
    },

    render (h) {
      const data = {
        staticClass: 'app-table-of-contents',
        style: this.styles,
        directives: [{
          name: 'scroll',
          value: this.onScroll
        }],
        attrs: this.$attrs,
        listeners: this.$listeners
      }

      let children = []

      if (this.list.length) {
        children = children.concat(this.list.map((item, i) => this.genItem(item, i)))
      }

      if (this.$slots.default) {
        children.push(this.$slots.default)
      }

      if (this.$slots.top) {
        children.unshift(this.$slots.top)
      }

      return h('ul', data, children)
    }
  }
</script>

<style lang="stylus">
  .app-table-of-contents
    list-style-type: none
    margin: 0 24px
    width: 200px

    li > a
      padding-left: 18px
      text-decoration: none
      border-left: 2px solid transparent
      transition: color .1s ease-in
</style>


query params

query params

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/lijianqiang/open-plan-vue.git/'


[NOSTORY] Change theme and inverse setting live

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/WaddlingCo/streamperk-frontend.git/'


App完成

App完成

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


add ImmersiveDevicePage component to bootstrap common component styling in the plugin

<template>

  <ImmersivePage
    :appBarTitle="appBarTitle"
    :route="route"
    :icon="icon"
  >
    <!-- Bootstraps everything in a centered KPageContainer -->
    <KPageContainer style="max-width: 1000px; margin: 32px auto;">
      <slot></slot>
    </KPageContainer>
  </ImmersivePage>

</template>

<script>

  import ImmersivePage from 'kolibri.coreVue.components.ImmersivePage';

  export default {
    name: 'ImmersiveDevicePage',
    components: {
      ImmersivePage,
    },
    props: {
      appBarTitle: {
        type: String,
        default: '',
      },
      route: {
        type: Object,
        default: null,
      },
      icon: {
        type: String,
        default: 'close',
      },
    },
  };

</script>

error: pathspec 'kolibri/plugins/device/assets/src/views/PageWrappers/ImmersiveDevicePage.vue' did not match any file(s) known to git


quick-link component

quick-link component

<script>
  export default {
    render: function (c) {
      var h5El, self = this;
      h5El = c('h5', {}, self.title);
      return c('div', {
        class: {
          'quick_links': true
        }
      }, [h5El, self.$slots.default]);
    },
    props: {
      title: {
        type: String,
        default: '快速链接'
      }
    }
  }
</script>

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


Fix modal requirement

Fix modal requirement

<template>

                <button type="button" class="close" data-dismiss="modal">
                    ×

                </button>

{{user.fullname}}

                    {{{ user.about | markdown }}}

                    <slot></slot>

</template>


Clean up side nav

Clean up side nav

<template>

    <div
      v-show="navShown"
      class="side-nav"
      :style="{ width: `${this.width}px` }"
    >
      <div
        class="side-nav-header"
        :style="{ height: headerHeight + 'px', width: `${width}px`, paddingTop: mobile ? '4px' : '8px' }"
      >
        <ui-icon-button
          :aria-label="$tr('closeNav')"
          type="secondary"
          color="white"
          size="large"
          icon="close"
          @click="toggleNav"
        />
        <ui-icon class="side-nav-header-logo"><logo/></ui-icon>
        Kolibri

      <div
        class="side-nav-scrollable-area"
        :style="{ top: `${headerHeight}px`, width: `${width}px` }"
      >
        <ui-menu
          class="side-nav-scrollable-area-menu"
          role="navigation"
          :options="menuOptions"
          :hasIcons="true"
          :aria-label="$tr('navigationLabel')"
          @select="navigate"
        />

          <logo class="side-nav-scrollable-area-footer-logo"/>

{{ footerMsg }}

© 2017 Learning Equality

</template>

<template>

        <ui-icon-button
          @click="toggleNav"
          type="secondary"
          color="white"
          size="large"
          icon="close"
          :aria-label="closeNav"/>
        <ui-icon class="header-logo"><logo/></ui-icon>
        Kolibri

      <div class="scrollable-nav" :style="{ width: width + 'px', paddingTop: `${headerHeight}px` }">
        <ui-menu
          class="nav-main"
          :options="menuOptions"
          hasIcons
          @select="navigate"
          role="navigation"
          :aria-label="ariaLabel"
          :style="{ width: width + 'px' }">
        </ui-menu>

        <logo
          class="logo"
          :style="{ width: width/6 + 'px', height: width/6 + 'px', marginLeft: width/20 + 'px', marginRight: width/20 + 'px' }"/>

{{ footerMsg }}

            © 2017 Learning Equality

</template>


Update OnlineClient.vue

Update OnlineClient.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/KunTengRom/xfrps.git/'


Update image size on cocktail page

Update image size on cocktail 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/barprive/barprive.com.git/'


Fix cocktail page

Fix cocktail page


fixed a bug

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


Adds category filter

Adds category filter

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


Modal Merge

Modal Merge

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


Use ShowWarnMsg.

Use ShowWarnMsg.


multi canvas demo

multi canvas demo

<template>

            <gcanvas v-if="isWeex" ref="canvas_holder" style="top: 0; width:750;height:750;position:absolute; background-color:rgba(0,0,0,0.1)" ></gcanvas>
            <canvas v-if="!isWeex" ref="canvas_holder" style="width:750px;height:750px;background-color:rgba(0,0,0,0)"></canvas>

</template>

error: pathspec 'GCanvas/js/weex-examples/multi-canvas.vue' did not match any file(s) known to git


Fixed: closed #53

Fixed: closed #53

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


refactor message close method

refactor message close method

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


feat(app): update snackbar

feat(app): update snackbar

<template>
  <v-fade-transition appear>
    <core-documentation v-if="!examples" />
    <div
      v-else
      id="app"
    >
      <router-view />
    </div>
  </v-fade-transition>
</template>

<script>
  import Meta from '@/mixins/meta'

  // Utilities
  import asyncData from '@/util/asyncData'

  import {
    mapMutations,
    mapState
  } from 'vuex'

  export default {
    mixins: [asyncData, Meta],

    asyncData ({ store }) {
      if (store.state.store.hasFetchedProducts &&
        store.state.store.products.length
      ) return Promise.resolve()

      return store.dispatch('store/getProducts')
    },

    computed: {
      ...mapState({
        isFullscreen: state => state.isFullscreen
      }),
      examples () {
        return !!this.$route.params.example
      }
    },

    mounted () {
      this.getReleases()

      this.snackbar({
        color: 'default',
        close: true,
        id: '1m-to-pay-open-source-maintainers-on-tidelift',
        text: 'Get details',
        msg: '**$1M** to pay OSS maintainers',
        href: 'https://blog.tidelift.com/1m-to-pay-open-source-maintainers-on-tidelift?utm_source=vuetify&utm_medium=referral&utm_campaign=news',
        timeout: 0
      })
    },

    methods: {
      ...mapMutations('app', {
        snackbar: 'SNACKBAR'
      }),
      getReleases () {
        this.$http.get('/releases/releases.json').then(({ data }) => {
          this.$store.commit('app/RELEASES', data)
        }).catch(err => {
          console.log(err)
        })
      }
    }
  }
</script>

<style lang="stylus">
  @import '~vuetify/src/stylus/settings/_variables.styl'

  main
    section
      &:before
        content ''
        display block
        position relative
        width 0
        height 80px
        margin-top -80px

  .container.page
    max-width: 1185px !important
    padding-top: 75px
    padding-bottom: 0
    transition: .2s $transition.fast-out-slow-in

    section
      margin-bottom: 48px
</style>

<template>
  <v-fade-transition appear>
    <core-documentation v-if="!examples" />
    <div
      v-else
      id="app"
    >
      <router-view />
    </div>
  </v-fade-transition>
</template>

<script>
  import Meta from '@/mixins/meta'

  // Utilities
  import asyncData from '@/util/asyncData'

  import {
    mapMutations,
    mapState
  } from 'vuex'

  export default {
    mixins: [asyncData, Meta],

    asyncData ({ store }) {
      if (store.state.store.hasFetchedProducts &&
        store.state.store.products.length
      ) return Promise.resolve()

      return store.dispatch('store/getProducts')
    },

    computed: {
      ...mapState({
        isFullscreen: state => state.isFullscreen
      }),
      examples () {
        return !!this.$route.params.example
      }
    },

    mounted () {
      this.getReleases()

      this.snackbar({
        color: 'default',
        close: true,
        id: 'august-2018-21369715',
        text: 'Go To Video',
        msg: '**August 2018 Update**',
        href: 'https://www.patreon.com/posts/august-2018-21369715',
        timeout: 0
      })
    },

    methods: {
      ...mapMutations('app', {
        snackbar: 'SNACKBAR'
      }),
      getReleases () {
        this.$http.get('/releases/releases.json').then(({ data }) => {
          this.$store.commit('app/RELEASES', data)
        }).catch(err => {
          console.log(err)
        })
      }
    }
  }
</script>

<style lang="stylus">
  @import '~vuetify/src/stylus/settings/_variables.styl'

  main
    section
      &:before
        content ''
        display block
        position relative
        width 0
        height 80px
        margin-top -80px

  .container.page
    max-width: 1185px !important
    padding-top: 75px
    padding-bottom: 0
    transition: .2s $transition.fast-out-slow-in

    section
      margin-bottom: 48px
</style>


move dashboards to foundation

move dashboards to foundation


[rating-bar] add support for custom icon set

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


Deleted spendTime field from time entry editor

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


feat: update contact links

feat: update contact links

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


#115 - Make the quantity count defaulted to checked

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/AlexandreBERGIA/LivrOr_V4.git/'


Add language preference to YouTube component

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


fix(MdButton): force MdRipple to be added when using MdButton alone

<template>
  <md-ripple :md-disabled="!mdRipple || disabled">
    <span class="md-button-content">
      <slot />
    </span>
  </md-ripple>
</template>

<script>
  import MdRipple from 'components/MdRipple/MdRipple'

  export default {
    name: 'MdButtonContent',
    components: {
      MdRipple
    },
    props: {
      mdRipple: Boolean,
      disabled: Boolean
    }
  }
</script>

<style lang="scss">
  .md-button-content {
    position: relative;
    z-index: 2;
  }
</style>

<template>
  <md-ripple :md-disabled="!mdRipple || disabled">
    <span class="md-button-content">
      <slot />
    </span>
  </md-ripple>
</template>

<script>
  export default {
    name: 'MdButtonContent',
    props: {
      mdRipple: Boolean,
      disabled: Boolean
    }
  }
</script>


Actually add AlbumCard component...

Actually add AlbumCard component...

<template>

{{ item.name }}

                        {{ artistName }}

                Tracklisting goes here

                Play album
                Like
                Hate

</template>

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


Success component

Success component

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


Optimize the `getData` method with IndexedDB

`getData` now checkes for the existence of data in IndexedDB (using the
'YYYY-MM-DD' formatted date as as key) before requesting it. If it
exists, the data is returned but if not the API is called.

The call to the API has been split into a separate method named
`requestData`.

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/astronote/astronote-docker.git/'


test demo

test demo

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/yedegesong/webpack2-typescript-vue-vuex.git/'


Widen login box

Widen login box

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


Add no-gutters

Add no-gutters

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


Fix search and make generic message

Fix search and make generic message

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


修改遮罩层宽度

修改遮罩层宽度

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


Rewrites copy, adds headings, replaces last slide with family share

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


[WIP] Filepicker component

[WIP] Filepicker component

<template>

        <button class="filepicker-btn-close" id="close-filepicker"></button>

             {{ $t('Add files') }}

                {{ folder.name }}
                {{ folder.name }}
                /

            <button class="btn btn-light mr-2" @click="newFolder(folder.id)" type="button"> {{ $t('New folder') }}</button>

                <button class="btn btn-light dropdown-toggle" :class="{disabled: !checkedItems.length}" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
                    {{ $t('Action') }}

                </button>

                    {{ $t('Delete') }}

                    {{ $t('Move to parent folder') }}

                    {{ $tc('# items selected', checkedItems.length, { count: checkedItems.length }) }}

                <button type="button" class="btn btn-light" :class="{active: view === 'grid'}" @click="switchView('grid')"> Grid</button>
                <button type="button" class="btn btn-light" :class="{active: view === 'list'}" @click="switchView('list')"> List</button>

            <div class="filemanager-item filemanager-item-with-name filemanager-item-editable"
                v-for="model in filteredItems"
                @click="check(model, $event)"
                :id="'item_'+model.id"
                :class="{
                    'filemanager-item-selected': checkedItems.indexOf(model) !== -1,
                    'filemanager-item-folder': model.type === 'f',
                    'filemanager-item-file': model.type !== 'f',
                }"
                draggable="true"
                checked-models="checkedItems"
                @drop="dropped(draggedModels, droppedModel)"
                @dblclick="handle(model)"
                >

{{ model.name }}

        <button class="btn btn-success filepicker-btn-add btn-add-multiple" type="button" @click="addSelectedFiles()" id="btn-add-selected-files">{{ $t('Add selected files') }}</button>
        <button class="btn btn-success filepicker-btn-add btn-add-single" :disabled="checkedItems.length !== 1" type="button" @click="handle(checkedItems[0])" id="btn-add-selected-file">{{ $t('Add selected file') }}</button>

</template>

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


create Config Form component

create Config Form component

<template>
  <form>

      Quantum

        <input
          class="input"
          type="number"
          v-bind:value="quantum"
          v-on:input="handleQantumChange"
        />

  </form>
</template>

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


added basic fromItems

added basic fromItems

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


Spelling

Spelling

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


fix bug

fix 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/xuanyan0x7c7/geometry-pad.git/'


Added ManageCustomers component

Added ManageCustomers component

<template>

Manage Customers

              <select v-model="selectedCustomer" ref="select_customer">
                <option v-for="customer in customers" :key="customer" :value="customer">{{ customer.name }}</option>
              </select>

      <form action="">

          Name

            <input v-model="selectedCustomer.name" type="text" class="input">

          ID (SSN/Personnummer)

            <input v-model="selectedCustomer._id" type="text" class="input">

              Address

                <input v-model="selectedCustomer.location.address" type="text" class="input">

              Zip code

                <input v-model="selectedCustomer.location.zip" type="text" class="input">

              Country

                <input v-model="selectedCustomer.location.country.name" type="text" class="input">

Club card

              Card number

                <input v-model="selectedCustomer.clubCard.number" type="text" class="input">

              Address

                <input v-model="selectedCustomer.clubCard.country" type="text" class="input">

              Number of orders

                <input v-model="selectedCustomer.clubCard.orders" type="number" class="input">

            <button href="#" type="submit" class="button is-success is-fullwidth" @click.stop="save" :disabled="selectedCustomer._id == null">Save employee</button>

{{ errors }}

      </form>

</template>

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


Turn table to api-mode=false and use dataManager instead.

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


Added validation to eta

Added validation to eta

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


Add class e label

Add class e label

Adicionado uma class para estilização e label mais objetivo.
Indexação do novo curso com parametro padrão nativado.

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


use computed css class for animations

use computed css class for animations

<script>
import Visibility from 'visibilityjs';
import Poll from './../lib/utils/poll';
import Service from './services/index';
import tasks from './actions/tasks';

export default {
  props: {
    endpoint: {
      required: true,
      type: String,
    },
    canUpdateIssue: {
      required: true,
      type: String,
    },
  },
  data() {
    const resource = new Service(this.$http, this.endpoint);

    const poll = new Poll({
      resource,
      method: 'getTitle',
      successCallback: (res) => {
        this.renderResponse(res);
      },
      errorCallback: (err) => {
        throw new Error(err);
      },
    });

    const defaultFlags = {
      pre: true,
      pulse: false,
    };

    return {
      poll,
      apiData: {},
      tasks: '0 of 0',
      title: null,
      titleText: '',
      titleFlag: defaultFlags,
      description: null,
      descriptionText: '',
      descriptionChange: false,
      descriptionFlag: defaultFlags,
      timeAgoEl: $('.issue_edited_ago'),
      titleEl: document.querySelector('title'),
    };
  },
  methods: {
    renderResponse(res) {
      this.apiData = res.json();
      this.triggerAnimation();
    },
    updateTaskHTML() {
      tasks(this.apiData, this.tasks);
    },
    elementsToVisualize(noTitleChange, noDescriptionChange) {
      if (!noTitleChange) {
        this.titleText = this.apiData.title_text;
        this.titleFlag = { pre: true, pulse: false };
      }

      if (!noDescriptionChange) {
        // only change to true when we need to bind TaskLists the html of description
        this.descriptionChange = true;
        this.updateTaskHTML();
        this.tasks = this.apiData.task_status;
        this.descriptionFlag = { pre: true, pulse: false };
      }

      return { noTitleChange, noDescriptionChange };
    },
    setTabTitle() {
      const currentTabTitleScope = this.titleEl.innerText.split('·');
      currentTabTitleScope[0] = `${this.titleText} (#${this.apiData.issue_number}) `;
      this.titleEl.innerText = currentTabTitleScope.join('·');
    },
    animate(title, description) {
      this.title = title;
      this.description = description;
      this.setTabTitle();

      this.$nextTick(() => {
        this.titleFlag = { pre: false, pulse: true };
        this.descriptionFlag = { pre: false, pulse: true };
      });
    },
    triggerAnimation() {
      // always reset to false before checking the change
      this.descriptionChange = false;

      const { title, description } = this.apiData;
      this.descriptionText = this.apiData.description_text;

      const noTitleChange = this.title === title;
      const noDescriptionChange = this.description === description;

      /**
      * since opacity is changed, even if there is no diff for Vue to update
      * we must check the title/description even on a 304 to ensure no visual change
      */
      if (noTitleChange && noDescriptionChange) return;

      this.elementsToVisualize(noTitleChange, noDescriptionChange);
      this.animate(title, description);
    },
    updateEditedTimeAgo() {
      const toolTipTime = gl.utils.formatDate(this.apiData.updated_at);

      this.timeAgoEl.attr('datetime', this.apiData.updated_at);
      this.timeAgoEl.attr('data-original-title', toolTipTime);
    },
  },
  computed: {
    descriptionClass() {
      return `description ${this.canUpdateIssue} is-task-list-enabled`;
    },
    titleAnimationCss() {
      return {
        'title issue-realtime-pre-pulse': this.titleFlag.pre,
        'title issue-realtime-trigger-pulse': this.titleFlag.pulse,
      };
    },
    descriptionAnimationCss() {
      return {
        'wiki issue-realtime-pre-pulse': this.descriptionFlag.pre,
        'wiki issue-realtime-trigger-pulse': this.descriptionFlag.pulse,
      };
    },
  },
  created() {
    if (!Visibility.hidden()) {
      this.poll.makeRequest();
    }

    Visibility.change(() => {
      if (!Visibility.hidden()) {
        this.poll.restart();
      } else {
        this.poll.stop();
      }
    });
  },
  updated() {
    // if new html is injected (description changed) - bind TaskList and call renderGFM
    if (this.descriptionChange) {
      this.updateEditedTimeAgo();

      $(this.$refs['issue-content-container-gfm-entry']).renderGFM();

      const tl = new gl.TaskList({
        dataType: 'issue',
        fieldName: 'description',
        selector: '.detail-page-description',
      });

      return tl && null;
    }

    return null;
  },
};
</script>

<template>
  <div>
    <h2
      :class="titleAnimationCss"
      ref="issue-title"
      v-html="title"
    >
    </h2>
    <div
      :class="descriptionClass"
      v-if="description"
    >
      <div
        :class="descriptionAnimationCss"
        v-html="description"
        ref="issue-content-container-gfm-entry"
      >
      </div>
      <textarea
        class="hidden js-task-list-field"
        v-if="descriptionText"
      >{{descriptionText}}</textarea>
    </div>
  </div>
</template>

<script>
import Visibility from 'visibilityjs';
import Poll from './../lib/utils/poll';
import Service from './services/index';
import tasks from './actions/tasks';

export default {
  props: {
    endpoint: {
      required: true,
      type: String,
    },
    canUpdateIssue: {
      required: true,
      type: String,
    },
  },
  data() {
    const resource = new Service(this.$http, this.endpoint);

    const poll = new Poll({
      resource,
      method: 'getTitle',
      successCallback: (res) => {
        this.renderResponse(res);
      },
      errorCallback: (err) => {
        throw new Error(err);
      },
    });

    return {
      poll,
      apiData: {},
      title: null,
      titleText: '',
      tasks: '0 of 0',
      description: null,
      descriptionText: '',
      descriptionChange: false,
      timeAgoEl: $('.issue_edited_ago'),
      titleEl: document.querySelector('title'),
    };
  },
  methods: {
    renderResponse(res) {
      this.apiData = res.json();
      this.triggerAnimation();
    },
    updateTaskHTML() {
      tasks(this.apiData, this.tasks);
    },
    elementsToVisualize(noTitleChange, noDescriptionChange) {
      const elementStack = [];

      if (!noTitleChange) {
        this.titleText = this.apiData.title_text;
        elementStack.push(this.$refs['issue-title']);
      }

      if (!noDescriptionChange) {
        // only change to true when we need to bind TaskLists the html of description
        this.descriptionChange = true;
        this.updateTaskHTML();
        this.tasks = this.apiData.task_status;
        elementStack.push(this.$refs['issue-content-container-gfm-entry']);
      }

      elementStack.forEach((element) => {
        if (element) {
          element.classList.remove('issue-realtime-trigger-pulse');
          element.classList.add('issue-realtime-pre-pulse');
        }
      });

      return elementStack;
    },
    setTabTitle() {
      const currentTabTitleScope = this.titleEl.innerText.split('·');
      currentTabTitleScope[0] = `${this.titleText} (#${this.apiData.issue_number}) `;
      this.titleEl.innerText = currentTabTitleScope.join('·');
    },
    animate(title, description, elementsToVisualize) {
      this.title = title;
      this.description = description;
      this.setTabTitle();

      this.$nextTick(() => {
        elementsToVisualize.forEach((element) => {
          if (element) {
            element.classList.remove('issue-realtime-pre-pulse');
            element.classList.add('issue-realtime-trigger-pulse');
          }
        });
      });
    },
    triggerAnimation() {
      // always reset to false before checking the change
      this.descriptionChange = false;

      const { title, description } = this.apiData;
      this.descriptionText = this.apiData.description_text;

      const noTitleChange = this.title === title;
      const noDescriptionChange = this.description === description;

      /**
      * since opacity is changed, even if there is no diff for Vue to update
      * we must check the title/description even on a 304 to ensure no visual change
      */
      if (noTitleChange && noDescriptionChange) return;

      const elementsToVisualize = this.elementsToVisualize(
        noTitleChange,
        noDescriptionChange,
      );

      this.animate(title, description, elementsToVisualize);
    },
    updateEditedTimeAgo() {
      const toolTipTime = gl.utils.formatDate(this.apiData.updated_at);

      this.timeAgoEl.attr('datetime', this.apiData.updated_at);
      this.timeAgoEl.attr('data-original-title', toolTipTime);
    },
  },
  computed: {
    descriptionClass() {
      return `description ${this.canUpdateIssue} is-task-list-enabled`;
    },
  },
  created() {
    if (!Visibility.hidden()) {
      this.poll.makeRequest();
    }

    Visibility.change(() => {
      if (!Visibility.hidden()) {
        this.poll.restart();
      } else {
        this.poll.stop();
      }
    });
  },
  updated() {
    // if new html is injected (description changed) - bind TaskList and call renderGFM
    if (this.descriptionChange) {
      this.updateEditedTimeAgo();

      $(this.$refs['issue-content-container-gfm-entry']).renderGFM();

      const tl = new gl.TaskList({
        dataType: 'issue',
        fieldName: 'description',
        selector: '.detail-page-description',
      });

      return tl && null;
    }

    return null;
  },
};
</script>

<template>
  <div>
    <h2
      class="title issue-realtime-trigger-pulse"
      ref="issue-title"
      v-html="title"
    >
    </h2>
    <div
      :class="descriptionClass"
      v-if="description"
    >
      <div
        class="wiki issue-realtime-trigger-pulse"
        v-html="description"
        ref="issue-content-container-gfm-entry"
      >
      </div>
      <textarea
        class="hidden js-task-list-field"
        v-if="descriptionText"
      >{{descriptionText}}</textarea>
    </div>
  </div>
</template>


The messages page works! Super happy

The messages page works! Super happy


Correctly fix project scrolling issue.

Correctly fix project scrolling issue.

The previous fix only worked on specific window heights.

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


Update Footer

Update Footer

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/lijy91/daza-frontend.git/'


First pass implementation of assessment wrapper to wrap all assessment content, and manage data.

<!--
This template is intended to act as the default wrapper for assessment focused rendering
plugins.

As such, it provides display of current mastery progress, and manages all mastery/attempt log
oriented data synchronization.
-->
<template>

  <div>
    <slot></slot>
  </div>

</template>

<script>

  const logging = require('kolibri/lib/logging').getLogger(__filename);

  const actions = require('kolibri/coreVue/vuex/actions');

  module.exports = {
    props: {
      itemId: {
        type: String,
      },
      masteryModel: {
        type: String,
      },
      masterySpacingTime: {
        type: Number,
      },
    },
    created() {
      this.$parent.$once('assessmentDataLoaded', initMasteryLog);
      // Once the data for the overall assessment is loaded in the renderer
      // we can initialize the mastery log, as the mastery model and spacing time
      // will be available.
      this.$parent.$once('itemIdSet', initAttemptLog);
    },
    methods: {
      initMasteryLog() {
        // Only initialize masteryLogs once the summaryLog is initialized.
        if (!(this.summaryLogId || this.summaryLogId === null)) {
          let watchRevoke;
          watchRevoke = this.$watch('summaryLogId', () => {
            if ((this.summaryLogId || this.summaryLogId === null)) {
              this.initMasteryLogAction(this.Kolibri, this.masterySpacingTime);
              watchRevoke();
            }
          });
        } else {
          this.initMasteryLogAction(this.Kolibri, this.masterySpacingTime);
        }
      },
      initAttemptLog() {
        // Only initialize attemptLogs once the masteryLog is initialized.
        if (!(this.masteryLogId || this.masteryLogId === null)) {
          let watchRevoke;
          watchRevoke = this.$watch('masteryLogId', () => {
            if ((this.masteryLogId || this.masteryLogId === null)) {
              this.initAttemptLogAction(this.Kolibri, this.itemId);
              watchRevoke();
            }
          });
        } else {
          this.initAttemptLogAction(this.Kolibri, this.itemId);
        }
      }
    }
    vuex: {
      actions: {
        initMasteryLogAction: actions.initMasteryLog,
        initAttemptLogAction: actions.initAttemptLog,
      },
      getters: {
        summaryLogId: (state) => state.core.logging.summary.id,
        masteryLogId: (state) => state.core.logging.mastery.id,
        totalattempts: (state) => state.core.logging.mastery.totalattempts,
      },
    },
  };

</script>

<style lang="stylus" scoped>

  @require '~kolibri/styles/coreTheme'

</style>

error: pathspec 'kolibri/core/assets/src/vue/assessment-wrapper/index.vue' did not match any file(s) known to git


get data from hook beforeRouteEnter

get data from hook beforeRouteEnter

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


prevent shrinking type

prevent shrinking type

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


Sidebar: add style

Sidebar: add 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/f00-/ncompass-node-mockup.git/'


FEAT: create basic functionality

FEAT: create basic functionality

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


#88 - Remove a missed console.log in the DeliveryMetalManager 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/AlexandreBERGIA/LivrOr_V4.git/'


fix iphone 5 padding

fix iphone 5 padding

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


Fix shirt disable logic

Fix shirt disable logic

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


Revue des styles hero en homepage

Revue des styles hero en homepage

<template>

            Évaluez vos droits à {{ prestationsNationalesCount + partenairesLocauxCount }} aides sociales.
 En moins de 7 minutes.

            <router-link
              to="/experimentations"
              v-bind:class="`button ${ctaSize} secondary`"
              v-if="showExperiment"
            >
              🚀 Continuer l'expérimentation 🚀
            </router-link>
            <button v-bind:class="`button ${ctaSize} primary`"
              v-on:click="newSituation()"
              v-analytics="{ action: ctaLabel, category:'Home'}"
            >
              {{ctaLabel}}
            </button>
            <button v-bind:class="`button ${ctaSize} secondary`"
              v-on:click="next()"
              v-analytics="{ action: 'Reprendre ma simulation', category:'Home'}"
              v-if="hasExistingSituation"
            >
              Reprendre la simulation
            </button>

            Ce questionnaire en ligne simple vous donnera un montant et vous donnera accès aux démarches pour les {{ prestationsNationalesCount }} aides nationales et {{ partenairesLocauxCount }} aides locales évaluées par le simulateur.

          <router-link class="" to="/lieux">
            Trouver le bon interlocuteur près de chez moi
          </router-link>

</template>

<template>

            Évaluez vos droits à {{ prestationsNationalesCount + partenairesLocauxCount }} aides sociales.

            En moins de 7 minutes.

            <router-link
              to="/experimentations"
              v-bind:class="`button ${ctaSize} secondary`"
              v-if="showExperiment"
            >
              🚀 Continuer l'expérimentation 🚀
            </router-link>
            <button v-bind:class="`button ${ctaSize} primary`"
              v-on:click="newSituation()"
              v-analytics="{ action: ctaLabel, category:'Home'}"
            >
              {{ctaLabel}}
            </button>
            <button v-bind:class="`button ${ctaSize} secondary`"
              v-on:click="next()"
              v-analytics="{ action: 'Reprendre ma simulation', category:'Home'}"
              v-if="hasExistingSituation"
            >
              Reprendre la simulation
            </button>

            Ce questionnaire en ligne simple vous donnera un montant et vous donnera accès aux démarches pour les {{ prestationsNationalesCount }} aides nationales et {{ partenairesLocauxCount }} aides locales évaluées par le simulateur.

          <router-link class="button large secondary" to="/lieux">
            Trouver le bon interlocuteur près de chez moi
          </router-link>

</template>


Cleans up lookup button logic

Cleans up lookup button logic

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


Optimize Elapsed Time

Optimize Elapsed Time

- Remove useless choices before calculation
    + 5C4 = 5C1 = 5
    + We need only top 3 plans.

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/emiru/fsg.git/'


add missing comma

add missing comma

<template>

        <icon
          :name="notificationIcon"
          :size="16"
          aria-hidden="true"
          class="sidebar-item-icon is-active"
        />

      {{ __('Notifications') }}

    <toggle-button
      ref="toggleButton"
      class="pull-right hide-collapsed js-issuable-subscribe-button"
      :is-loading="showLoadingState"
      :value="subscribed"
      @change="toggleSubscription"
    />

</template>


JoinByArray: add join component

JoinByArray: add join component

<template>
  <AposInputWrapper
    :field="field" :error="error"
    :uid="uid"
  >
    <template #body>

          <input
            class="apos-input apos-input--text apos-input--join"
            v-model="next" type="text"
            :placeholder="field.placeholder"
            :disabled="status.disabled" :required="field.required"
            :id="uid"
            @input="input"
          >
          <AposButton
            :label="browseLabel"
            :modifiers="['small']"
            type="input"
          />

        <AposSlatList @update="updated" :initial-items="listItems" />

    </template>
  </AposInputWrapper>
</template>

error: pathspec 'modules/@apostrophecms/schema/ui/apos/components/AposInputJoinByArray.vue' did not match any file(s) known to git


Fixed bug with stoping active task

Fixed bug with stoping active task


Sanitise less than and greater than symbols in example

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


添加popquery组件

添加popquery组件

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


Hiding the input feed url

Hiding the input feed 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/chetanraj/rssrdr-vue.git/'


Remove not needed default statement

Remove not needed default statement

<template>

    <status-icon
      status="warning"
      :show-disabled-button="true"
    />

          {{ missingBranchName }}
         {{ s__("mrWidget|branch does not exist.") }}
        {{ missingBranchNameMessage }}

</template>


Enforce slash at the end of urls

Enforce slash at the end of urls

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


Fix date formatting

Fix date formatting

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


Replace year with github and demo links

Replace year with github and demo links


Refactor huge method

Refactor huge method

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


recalculate indicator tab when parent changes


Component that render selector passing the respective configs

<template>
  <span class="cursor_default">
    <template v-if="text">
      <span
        @click="showModal = true"
        class="pointer">
        {{text}}
      </span>
    </template>

    <selector
      v-if="showModal"
      v-bind:db="database"
      v-bind:confs="confs"
      v-bind:filter="filter"
      v-on:close="closeModal()">
    </selector>
  </span>
</template>

<script>
import "../../assets/css/*.css"
var configs = require("../../lib/configs.js");

export default {
  name: "SelectorModifier",
  props: ["db", "text", "filter"],
  data() {
    return {
      showModal: true,
      confs: configs.env,
      databases: configs.databases
    }
  },
  created: function () {
    this.database = this.databases[this.db];
  },
  methods: {
    closeModal() {
      this.showModal = false;
    }
  },
};
</script>

<style type="text/css" scoped>
  .cursor_default {
    cursor: default;
  }
</style>

error: pathspec 'dataviva/static/js/modules/ui/app/components/elements/selector-modifier.vue' did not match any file(s) known to git


面包屑修改

面包屑修改


Change the way results are classified

Change the way results are classified

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


Add possibility to remove ingredient in small ingredient if ingredient is already in basket


avoid squeezed disc

avoid squeezed disc

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/Shuunen/vienyl.git/'


Clone of Matchheading for the history page.

<template>

 Server

 Score Percent

 Score

 K/D

  Activity

      <MdlTooltip :target="'mhh-activity' + randomNumber()">
        Kills + Deaths
      </MdlTooltip>

  S.Rating

      <MdlTooltip :target="'mhh-srating' + randomNumber()">
        Start Rating
      </MdlTooltip>

  E.Rating

      <MdlTooltip :target="'mhh-erating' + randomNumber()">
        End Rating
      </MdlTooltip>

   Change

      <MdlTooltip :target="'mhh-change' + randomNumber()">
        Change in Glicko Rating from Beginning of Week
      </MdlTooltip>

  View

      <MdlTooltip :target="'mhh-view' + randomNumber()">
        View Match Details (Coming Soon)
      </MdlTooltip>

</template>

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


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


Fix aria on talks page

Fix aria on talks page


util to show extended description

util to show extended description

<template>

              {{shortDescription}}
              More …
              Less

            <markdown-it-vue class="markdown-body" :content="extraDescription"/>

      {{text}}

</template>

error: pathspec 'rundeckapp/grails-spa/packages/ui-trellis/src/components/utils/ExtendedDescription.vue' did not match any file(s) known to git


:art: lounge scroll

:art: lounge scroll

<template>
  <div class="area-page">
    <v-container fluid>
      <v-row>
        <v-col cols="6">
          <header>
            <appbar />
            <filter-toolbar />
          </header>
          <v-card>
            <v-list>
              <template v-for="e in gShowingCatalog" :data-eid="e.eid">
                <template v-if="showMode === 'rack'">
                  <rack-entry :key="e.eid" :obj="e" />
                </template>
                <template v-else-if="showMode === 'slim'">
                  <slim-entry :key="e.eid" :obj="e" :no="idx + 1" />
                </template>
              </template>
            </v-list>
          </v-card>
        </v-col>
        <v-col cols="6">
          <v-row class="area-lounge">
            <v-col cols="5">
              <interlude v-if="entry.eid" />
            </v-col>
            <v-col cols="7">
              <lounge />
              <hatebu v-if="entry.eid" />
            </v-col>
          </v-row>
        </v-col>
      </v-row>
    </v-container>
  </div>
</template>

<script>
import { mapState, mapGetters } from 'vuex'
import Appbar from '@/components/Appbar'
import FilterToolbar from '@/components/FilterToolbar'
import Interlude from '@/components/Interlude'
import Lounge from '@/components/lobine/Lounge'
import Hatebu from '@/components/Hatebu'
import RackEntry from '@/components/RackEntry'
import SlimEntry from '@/components/SlimEntry'

export default {
  components: {
    Appbar,
    FilterToolbar,
    RackEntry,
    SlimEntry,
    Interlude,
    Hatebu,
    Lounge,
  },
  computed: {
    ...mapState('stream/filter', {
      showMode: (state) => state.showMode,
    }),
    ...mapGetters({
      gShowingCatalog: 'chase/gShowingCatalog',
      entry: 'chase/activeEntry',
    }),
  },
}
</script>

<style lang="scss" scoped>
.area-page {
  background-color: #f9fafb;
}

.area-lounge {
  position: fixed;
  max-width: inherit;
  height: 100%;

  > .col {
    height: 100%;
    overflow: auto;
    padding: 0;
  }
}
</style>

<template>
  <div class="area-page">
    <v-container fluid>
      <v-row>
        <v-col cols="6">
          <header>
            <appbar />
            <filter-toolbar />
          </header>
          <v-card>
            <v-list>
              <template v-for="e in gShowingCatalog" :data-eid="e.eid">
                <template v-if="showMode === 'rack'">
                  <rack-entry :key="e.eid" :obj="e" />
                </template>
                <template v-else-if="showMode === 'slim'">
                  <slim-entry :key="e.eid" :obj="e" :no="idx + 1" />
                </template>
              </template>
            </v-list>
          </v-card>
        </v-col>
        <v-col cols="6">
          <v-row class="area-lounge">
            <v-col cols="5">
              <interlude v-if="entry.eid" />
            </v-col>
            <v-col cols="7">
              <lounge />
              <hatebu v-if="entry.eid" />
            </v-col>
          </v-row>
        </v-col>
      </v-row>
    </v-container>
  </div>
</template>

<script>
import { mapState, mapGetters } from 'vuex'
import Appbar from '@/components/Appbar'
import FilterToolbar from '@/components/FilterToolbar'
import Interlude from '@/components/Interlude'
import Lounge from '@/components/lobine/Lounge'
import Hatebu from '@/components/Hatebu'
import RackEntry from '@/components/RackEntry'
import SlimEntry from '@/components/SlimEntry'

export default {
  components: {
    Appbar,
    FilterToolbar,
    RackEntry,
    SlimEntry,
    Interlude,
    Hatebu,
    Lounge,
  },
  computed: {
    ...mapState('stream/filter', {
      showMode: (state) => state.showMode,
    }),
    ...mapGetters({
      gShowingCatalog: 'chase/gShowingCatalog',
      entry: 'chase/activeEntry',
    }),
  },
}
</script>

<style lang="scss" scoped>
.area-page {
  background-color: #f9fafb;
}

.area-lounge {
  position: fixed;
  max-width: inherit;
}
</style>


Readd app.css

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


Add max-width to deal spec form

Add max-width to deal spec form

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


There is no need as vue gets this from the mixin

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


Replace hacky DOM-based toggle script with superior code.

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


Use dash instead of underscore

Use dash instead of underscore

[ci skip]

<script>
  export default {
    props: {
      formState: {
        type: Object,
        required: true,
      },
    },
  };
</script>

<template>
  <fieldset class="checkbox">
    <label for="issue-confidential">
      <input
        type="checkbox"
        value="1"
        id="issue-confidential"
        v-model="formState.confidential" />
      This issue is confidential and should only be visible to team members with at least Reporter access.
    </label>
  </fieldset>
</template>

<script>
  export default {
    props: {
      formState: {
        type: Object,
        required: true,
      },
    },
  };
</script>

<template>
  <fieldset class="checkbox">
    <label for="issue_confidential">
      <input
        type="checkbox"
        value="1"
        id="issue_confidential"
        v-model="formState.confidential" />
      This issue is confidential and should only be visible to team members with at least Reporter access.
    </label>
  </fieldset>
</template>


Force the parameter(fraction)'s value of the method 'LineString.getCoordinateAt' to be between 0 and 1

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/parksandwildlife/gokart.git/'


[added] action="/" to redirect home after submit

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/mtlong29/JBShop_Site.git/'


reset form column's with in component Attachment

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


Made hero image lighter

Made hero image lighter


添加级联菜单组件

添加级联菜单组件

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


Bg-Bubble.vue

Bg-Bubble.vue

气泡背景组件

error: pathspec 'Bg-Bubble.vue' did not match any file(s) known to git


switch: eliminate misunderstanding

switch: eliminate misunderstanding

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


Use replace() to direct to omniauth auth0 route

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/hiddenwaffle/flying.git/'


[#44] Fix minicart counter

[#44] Fix minicart counter

<template>

    shopping_cart
    {{totals.quantity}}

</template>

<template>

    shopping_cart

</template>


Account.vue

Account.vue

<template>

白银会员

13162761012

账户余额

会员积分

红包

我的订单

评价晒单

申请售后

充值更省

免费拿红包

幸运摇一摇

地址管理

账户资料

联系客服

</template>

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


minor fix

minor fix

<template>
    <div class="input-group-btn">
        <slot></slot>
    </div>
</template>

<script>
    export default {
        props: {}
    };
</script>

<template>
    <div class="input-group-btn">
        <slot></slot>
    </div>
</template>

<script>
    export default {}
</script>


Float “new group” button to the right of page

<template>

{{ $tr('classGroups') }}

{{ $tr('noGroups') }}

    <k-button
      class="new-group-button"
      :text="$tr('newGroup')"
      :primary="true"
      @click="openCreateGroupModal"
    />

    <create-group-modal
      v-if="showCreateGroupModal"
      :groups="sortedGroups"
    />

    <rename-group-modal
      v-if="showRenameGroupModal"
      :groupName="selectedGroup.name"
      :groupId="selectedGroup.id"
      :groups="sortedGroups"
    />

    <delete-group-modal
      v-if="showDeleteGroupModal"
      :groupName="selectedGroup.name"
      :groupId="selectedGroup.id"
    />

    <move-learners-modal
      v-if="showMoveLearnersModal"
      :groupId="selectedGroup.id"
      :groups="sortedGroups"
      :usersToMove="usersToMove"
      :isUngrouped="isUngrouped"
    />

    <group-section
      v-for="group in sortedGroups"
      :key="group.id"
      :canMove="Boolean(sortedGroups.length)"
      :group="group"
      @rename="openRenameGroupModal"
      @delete="openDeleteGroupModal"
      @move="openMoveLearnersModal"
    />

    <group-section
      :canMove="Boolean(sortedGroups.length)"
      :group="ungroupedUsersObject"
      :isUngrouped="true"
      @move="openMoveLearnersModal"
    />

</template>

<template>

{{ $tr('classGroups') }}

{{ $tr('noGroups') }}

    <k-button
      :text="$tr('newGroup')"
      :primary="true"
      @click="openCreateGroupModal"
    />

    <create-group-modal
      v-if="showCreateGroupModal"
      :groups="sortedGroups"
    />

    <rename-group-modal
      v-if="showRenameGroupModal"
      :groupName="selectedGroup.name"
      :groupId="selectedGroup.id"
      :groups="sortedGroups"
    />

    <delete-group-modal
      v-if="showDeleteGroupModal"
      :groupName="selectedGroup.name"
      :groupId="selectedGroup.id"
    />

    <move-learners-modal
      v-if="showMoveLearnersModal"
      :groupId="selectedGroup.id"
      :groups="sortedGroups"
      :usersToMove="usersToMove"
      :isUngrouped="isUngrouped"
    />

    <group-section
      v-for="group in sortedGroups"
      :key="group.id"
      :canMove="Boolean(sortedGroups.length)"
      :group="group"
      @rename="openRenameGroupModal"
      @delete="openDeleteGroupModal"
      @move="openMoveLearnersModal"
    />

    <group-section
      :canMove="Boolean(sortedGroups.length)"
      :group="ungroupedUsersObject"
      :isUngrouped="true"
      @move="openMoveLearnersModal"
    />

</template>


Change bitcoin font and link

Change bitcoin font and 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/egoconf/egoconf.git/'


add backers

add backers

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


fix: 修复意外选中背景

fix: 修复意外选中背景

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/Chreem/info.git/'


#88 - Make sure the input name in the MetalTransaction are built correctly

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/AlexandreBERGIA/LivrOr_V4.git/'


Backport inline loading_icon updates from EE

See
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/2246#note_33577729

<script>
  export default {
    props: {
      label: {
        type: String,
        required: false,
        default: 'Loading',
      },

      size: {
        type: String,
        required: false,
        default: '1',
      },

      inline: {
        type: Boolean,
        required: false,
        default: false,
      },
    },

    computed: {
      rootElementType() {
        return this.inline ? 'span' : 'div';
      },
      cssClass() {
        return `fa-${this.size}x`;
      },
    },
  };
</script>
<template>
  <component
    :is="this.rootElementType"
    class="text-center">
    <i
      class="fa fa-spin fa-spinner"
      :class="cssClass"
      aria-hidden="true"
      :aria-label="label">
    </i>
  </component>
</template>

<script>
  export default {
    props: {
      label: {
        type: String,
        required: false,
        default: 'Loading',
      },

      size: {
        type: String,
        required: false,
        default: '1',
      },
    },

    computed: {
      cssClass() {
        return `fa-${this.size}x`;
      },
    },
  };
</script>
<template>
  <div class="text-center">
    <i
      class="fa fa-spin fa-spinner"
      :class="cssClass"
      aria-hidden="true"
      :aria-label="label">
    </i>
  </div>
</template>


Small adaptation

Small adaptation


Add drive-list component

Add drive-list component

<template>

        <mat-svg class="error-svg" category="alert" name="error_outline"/>
        {{ $tr('noDrivesDetected') }}

{{ $tr('drivesFound') }}

        <ui-radio
          :id="'drive-'+index"
          :trueValue="drive.id"
          v-model="selectedDrive"
        >

{{ drive.name }}

            {{ enabledMsg(drive) }}

        </ui-radio>

        <ui-radio
          :id="'disabled-drive-'+index"
          :trueValue="drive.id"
          disabled
          v-model="selectedDrive"
        >

{{ drive.name }}

            {{ disabledMsg }}

        </ui-radio>

</template>

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


email component

email component

<template>

      <form action="http://172.16.230.140:3030/email-receive" method="POST">

Proof:

              From
              <input type="text" class="form-control" id="from"  placeholder="Enter From email">

              To
              <input type="text" class="form-control" id="to"  placeholder="Enter TO">

              CC:
              <input type="text" class="form-control" id="cc"  placeholder="Enter CC">

              BCC:
              <input type="text" class="form-control" id="bcc"  placeholder="Enter BCC">

              Type:
              <input type="text" class="form-control" id="type"  placeholder="Enter Type">

              Title description:
              <input type="text" class="form-control" id="td"  placeholder="Enter Title Description">

          Comment
          <textarea class="form-control" id="exampleTextarea" rows="3"></textarea>

          File input
          <input type="file" class="form-control-file" id="exampleInputFile" aria-describedby="fileHelp">

        <button type="submit" class="btn btn-primary">Submit</button>
      </form>

</template>

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


created basic article layout

created basic article layout

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


fixed the preview tab

fixed the preview tab

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


#84 - Pass the deleted_at attribute when deleting an AlloyTransaction to delete it from the application


团战分组功能实现与优化

团战分组功能实现与优化

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


Update the `v-input` component for proper data binding

Much like the `v-checkbox` component, the `v-input` component needed to
be set up to work with the `v-model` attribute. This involved defining
what property to link the `model` to, defining the property itself and
adding an event (in this case, the `input` event) to enable two-way
data binding.

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/astronote/astronote-docker.git/'


fix path

fix path

<template>

    <router-link :to="'/'" class="sidenav-heading">

Kolibri Style Guide

    </router-link>

      <template v-for="section in navMenu">

{{ section.sectionName }}

            <router-link :to="sectionItem.itemRoute">
              {{ sectionItem.itemName }}
            </router-link>

      </template>

</template>


Change aggregate index grid's name

Change aggregate index grid's name

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


Change moment js date parsing using unix timestamp

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/Gamabunta94/GroceryShop.git/'


Create qrCode.vue

Create qrCode.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/wtbu703/simple.git/'


Updates image src

Updates image src

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


remove extra line, fix import

remove extra line, fix import

<template lang="pug">
  v-container.page
    v-layout
      v-flex(xs12 md9)
        page-head(
          :header="header"
          :text="headerText"
        )
          div(slot="sup")
            slot(name="sup")
        slot(:namespace="namespace")
        app-footer
      v-flex(md3 hidden-sm-and-down)
        app-table-of-contents(
          :threshold="50"
          :offset="85"
          :items="computedToc"
        )
          app-ad(slot="top")
</template>

<script>
  import AppAd from '@/components/core/AppAd'
  import AppFooter from '@/components/core/AppFooter'
  import AppTableOfContents from '@/components/core/AppTableOfContents'
  import { camel } from '@/util/helpers'

  export default {
    components: {
      AppFooter,
      AppAd,
      AppTableOfContents
    },

    props: {
      toc: {
        type: Array,
        default: () => ([])
      }
    },

    computed: {
      header () {
        const header = `${this.namespace}.header`

        return this.$t(header)
      },
      headerText () {
        const headerText = `${this.namespace}.headerText`

        return this.$t(headerText)
      },
      namespace () {
        const route = this.$route.path.slice(1).split('/')

        return route.map(s => camel(s)).join('.')
      },
      computedToc () {
        if (this.toc.length > 0) return this.toc

        const toc = `${this.namespace}.toc`

        return this.$te(toc) ? this.$t(toc) : []
      }
    }
  }
</script>

<style lang="stylus">
  @import '~vuetify/src/stylus/settings/_variables.styl'

  .page
    max-width: 1185px !important
    padding-top: 75px
    padding-bottom: 0
    transition: .2s $transition.fast-out-slow-in

    section
      margin-bottom: 48px
</style>

<template lang="pug">
  v-container.page
    v-layout
      v-flex(xs12 md9)
        page-head(
          :header="header"
          :text="headerText"
        )
          div(slot="sup")
            slot(name="sup")
        slot(:namespace="namespace")
        app-footer
      v-flex(md3 hidden-sm-and-down)
        app-table-of-contents(
          :threshold="50"
          :offset="85"
          :items="computedToc"
        )
          app-ad(slot="top")
</template>

<script>
  import AppAd from '@/components/core/AppAd'
  import AppFooter from '@/components/core/AppFooter'
  import AppTableOfContents from '@/components/core/AppTableOfContents'
  import { camel } from '@/util/helpers'

  export default {
    components: {
      AppFooter,
      AppAd,
      AppTableOfContents
    },

    props: {
      toc: {
        type: Array,
        default: () => ([])
      }
    },

    computed: {
      header () {
        const header = `${this.namespace}.header`

        return this.$t(header)
      },
      headerText () {
        const headerText = `${this.namespace}.headerText`

        return this.$t(headerText)
      },
      namespace () {
        const route = this.$route.path.slice(1).split('/')

        return route.map(s => camel(s)).join('.')
      },
      computedToc () {
        if (this.toc.length > 0) return this.toc

        const toc = `${this.namespace}.toc`

        return this.$te(toc) ? this.$t(toc) : []
      }
    }
  }
</script>http://l.test:8071/getting-started/contributing

<style lang="stylus">
  @import '../../node_modules/vuetify/src/stylus/settings/_variables.styl'

  .page
    max-width: 1185px !important
    padding-top: 75px
    padding-bottom: 0
    transition: .2s $transition.fast-out-slow-in

    section
      margin-bottom: 48px
</style>