getShipping + getPayment methods optimization

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

<script>
import i18n from 'core/lib/i18n'
import config from 'config'
import PersonalDetails from 'core/components/blocks/Checkout/PersonalDetails'
import Shipping from 'core/components/blocks/Checkout/Shipping'
import Payment from 'core/components/blocks/Checkout/Payment'
import OrderReview from 'core/components/blocks/Checkout/OrderReview'
import CartSummary from 'core/components/blocks/Checkout/CartSummary'
import Composite from 'core/mixins/composite'

export default {
  name: 'Checkout',
  mixins: [Composite],
  metaInfo () {
    return {
      title: this.$route.meta.title || i18n.t('Checkout'),
      meta: this.$route.meta.description ? [{vmid: 'description', description: this.$route.meta.description}] : []
    }
  },
  data () {
    return {
      stockCheckCompleted: false,
      stockCheckOK: false,
      orderPlaced: false,
      activeSection: {
        personalDetails: true,
        shipping: false,
        payment: false,
        orderReview: false
      },
      order: {},
      personalDetails: {},
      shipping: {},
      payment: {},
      orderReview: {},
      cartSummary: {},
      validationResults: {
        personalDetails: { $invalid: true },
        shipping: { $invalid: true },
        payment: { $invalid: true }
      },
      userId: null
    }
  },
  beforeMount () {
    if (this.$store.state.cart.cartItems.length === 0) {
      this.$bus.$emit('notification', {
        type: 'warning',
        message: i18n.t('Shopping cart is empty. Please add some products before entering Checkout'),
        action1: { label: 'OK', action: 'close' }
      })
      this.$router.push('/')
    } else {
      this.stockCheckCompleted = false
      const checkPromises = []
      for (let product of this.$store.state.cart.cartItems) { // check the results of online stock check
        if (product.onlineStockCheckid) {
          checkPromises.push(new Promise((resolve, reject) => {
            global.$VS.db.syncTaskCollection.getItem(product.onlineStockCheckid, function (err, item) {
              if (err) {
                console.error(err)
                resolve(null)
              } else {
                product.stock = item.result
                resolve(product)
              }
            })
          }))
        }
      }
      Promise.all(checkPromises).then(function (checkedProducts) {
        this.stockCheckCompleted = true
        this.stockCheckOK = true
        for (let chp of checkedProducts) {
          if (chp && chp.stock) {
            if (!chp.stock.is_in_stock) {
              this.stockCheckOK = false
              chp.warning_message = i18n.t('Out of stock!')
              this.$bus.$emit('notification', {
                type: 'error',
                message: chp.name + i18n.t(' is out of the stock!'),
                action1: { label: 'OK', action: 'close' }
              })
            }
          }
        }
      }.bind(this))
    }
    let country = this.$store.state.checkout.shippingDetails.country
    if (!country) country = config.i18n.defaultCountry
    this.$bus.$emit('checkout-before-shippingMethods', country)
    this.$store.dispatch('cart/getPaymentMethods')
  },
  created () {
    // TO-DO: Dont use event bus ad use v-on at components (?)
    this.$bus.$on('network-before-checkStatus', this.onNetworkStatusCheck)
    // TO-DO: Use one event with name as apram
    this.$bus.$on('checkout-after-personalDetails', this.onAfterPersonalDetails)
    this.$bus.$on('checkout-after-shippingDetails', this.onAfterShippingDetails)
    this.$bus.$on('checkout-after-paymentDetails', this.onAfterPaymentDetails)
    this.$bus.$on('checkout-after-cartSummary', this.onAfterCartSummary)
    this.$bus.$on('checkout-before-placeOrder', this.onBeforePlaceOrder)
    this.$bus.$on('checkout-do-placeOrder', this.onDoPlaceOrder)
    this.$bus.$on('checkout-before-edit', this.onBeforeEdit)
    this.$bus.$on('order-after-placed', this.onAfterPlaceOrder)
    this.$bus.$on('checkout-before-shippingMethods', this.onBeforeShippingMethods)
    this.$bus.$on('checkout-after-shippingMethodChanged', this.onAfterShippingMethodChanged)
  },
  destroyed () {
    this.$bus.$off('network-before-checkStatus', this.onNetworkStatusCheck)
    this.$bus.$off('checkout-after-personalDetails', this.onAfterPersonalDetails)
    this.$bus.$off('checkout-after-shippingDetails', this.onAfterShippingDetails)
    this.$bus.$off('checkout-after-paymentDetails', this.onAfterPaymentDetails)
    this.$bus.$off('checkout-after-cartSummary', this.onAfterCartSummary)
    this.$bus.$off('checkout-before-placeOrder') // this is intentional exception as the payment methods are dynamically binding to the before-placeOrder event
    this.$bus.$off('checkout-do-placeOrder', this.onDoPlaceOrder)
    this.$bus.$off('checkout-before-edit', this.onBeforeEdit)
    this.$bus.$off('order-after-placed', this.onAfterPlaceOrder)
    this.$bus.$off('checkout-before-shippingMethods', this.onBeforeShippingMethods)
    this.$bus.$off('checkout-after-shippingMethodChanged', this.onAfterShippingMethodChanged)
  },
  computed: {
  },
  watch: {
    '$route': 'activateHashSection'
  },
  methods: {
    onAfterShippingMethodChanged (payload) {
      this.$store.dispatch('cart/refreshTotals', payload)
    },
    onBeforeShippingMethods (country) {
      this.$store.dispatch('cart/getShippingMethods', {
        country_id: country
      }).then(() => {
        this.$store.dispatch('cart/refreshTotals')
        this.$forceUpdate();
      })
    },
    onAfterPlaceOrder (order) {
      this.orderPlaced = true
      console.log(this.order)
    },
    onBeforeEdit (section) {
      this.activateSection(section)
    },
    onBeforePlaceOrder (userId) {
      if (userId) {
        this.userId = userId.toString()
      }
    },
    onAfterCartSummary (receivedData) {
      this.cartSummary = receivedData
    },
    onDoPlaceOrder (additionalPayload) {
      this.payment.paymentMethodAdditional = additionalPayload
      this.placeOrder()
    },
    onAfterPaymentDetails (receivedData, validationResult) {
      this.payment = receivedData
      this.validationResults.payment = validationResult
      this.activateSection('orderReview')
      this.savePaymentDetails()
    },
    onAfterShippingDetails (receivedData, validationResult) {
      this.shipping = receivedData
      this.validationResults.shipping = validationResult
      global.$VS.__TAX_COUNTRY__ = this.shipping.country
      this.activateSection('payment')
      this.saveShippingDetails()
    },
    onAfterPersonalDetails (receivedData, validationResult) {
      this.personalDetails = receivedData
      this.validationResults.personalDetails = validationResult
      this.activateSection('shipping')
      this.savePersonalDetails()
    },
    onNetworkStatusCheck (status) {
      this.checkConnection(status)
    },
    checkStocks () {
      let isValid = true
      for (let child of this.$children) {
        if (child.hasOwnProperty('$v')) {
          if (child.$v.$invalid) {
            // Check if child component is Personal Details.
            // If so, then ignore validation of account creation fields.
            if (child.$v.hasOwnProperty('personalDetails')) {
              if (child.$v.personalDetails.$invalid) {
                isValid = false
                break
              }
            } else {
              isValid = false
              break
            }
          }
        }
      }

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

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

<script>
import i18n from 'core/lib/i18n'
import config from 'config'
import PersonalDetails from 'core/components/blocks/Checkout/PersonalDetails'
import Shipping from 'core/components/blocks/Checkout/Shipping'
import Payment from 'core/components/blocks/Checkout/Payment'
import OrderReview from 'core/components/blocks/Checkout/OrderReview'
import CartSummary from 'core/components/blocks/Checkout/CartSummary'
import Composite from 'core/mixins/composite'

export default {
  name: 'Checkout',
  mixins: [Composite],
  metaInfo () {
    return {
      title: this.$route.meta.title || i18n.t('Checkout'),
      meta: this.$route.meta.description ? [{vmid: 'description', description: this.$route.meta.description}] : []
    }
  },
  data () {
    return {
      stockCheckCompleted: false,
      stockCheckOK: false,
      orderPlaced: false,
      activeSection: {
        personalDetails: true,
        shipping: false,
        payment: false,
        orderReview: false
      },
      order: {},
      personalDetails: {},
      shipping: {},
      payment: {},
      orderReview: {},
      cartSummary: {},
      validationResults: {
        personalDetails: { $invalid: true },
        shipping: { $invalid: true },
        payment: { $invalid: true }
      },
      userId: null
    }
  },
  beforeMount () {
    if (this.$store.state.cart.cartItems.length === 0) {
      this.$bus.$emit('notification', {
        type: 'warning',
        message: i18n.t('Shopping cart is empty. Please add some products before entering Checkout'),
        action1: { label: 'OK', action: 'close' }
      })
      this.$router.push('/')
    } else {
      this.stockCheckCompleted = false
      const checkPromises = []
      for (let product of this.$store.state.cart.cartItems) { // check the results of online stock check
        if (product.onlineStockCheckid) {
          checkPromises.push(new Promise((resolve, reject) => {
            global.$VS.db.syncTaskCollection.getItem(product.onlineStockCheckid, function (err, item) {
              if (err) {
                console.error(err)
                resolve(null)
              } else {
                product.stock = item.result
                resolve(product)
              }
            })
          }))
        }
      }
      Promise.all(checkPromises).then(function (checkedProducts) {
        this.stockCheckCompleted = true
        this.stockCheckOK = true
        for (let chp of checkedProducts) {
          if (chp && chp.stock) {
            if (!chp.stock.is_in_stock) {
              this.stockCheckOK = false
              chp.warning_message = i18n.t('Out of stock!')
              this.$bus.$emit('notification', {
                type: 'error',
                message: chp.name + i18n.t(' is out of the stock!'),
                action1: { label: 'OK', action: 'close' }
              })
            }
          }
        }
      }.bind(this))
    }
    if (this.$store.state.checkout.shippingDetails.country) {
      this.$bus.$emit('checkout-before-shippingMethods', this.$store.state.checkout.shippingDetails.country)
    }
    this.$store.dispatch('cart/getPaymentMethods')
  },
  created () {
    // TO-DO: Dont use event bus ad use v-on at components (?)
    this.$bus.$on('network-before-checkStatus', this.onNetworkStatusCheck)
    // TO-DO: Use one event with name as apram
    this.$bus.$on('checkout-after-personalDetails', this.onAfterPersonalDetails)
    this.$bus.$on('checkout-after-shippingDetails', this.onAfterShippingDetails)
    this.$bus.$on('checkout-after-paymentDetails', this.onAfterPaymentDetails)
    this.$bus.$on('checkout-after-cartSummary', this.onAfterCartSummary)
    this.$bus.$on('checkout-before-placeOrder', this.onBeforePlaceOrder)
    this.$bus.$on('checkout-do-placeOrder', this.onDoPlaceOrder)
    this.$bus.$on('checkout-before-edit', this.onBeforeEdit)
    this.$bus.$on('order-after-placed', this.onAfterPlaceOrder)
    this.$bus.$on('checkout-before-shippingMethods', this.onBeforeShippingMethods)
    this.$bus.$on('checkout-after-shippingMethodChanged', this.onAfterShippingMethodChanged)
  },
  destroyed () {
    this.$bus.$off('network-before-checkStatus', this.onNetworkStatusCheck)
    this.$bus.$off('checkout-after-personalDetails', this.onAfterPersonalDetails)
    this.$bus.$off('checkout-after-shippingDetails', this.onAfterShippingDetails)
    this.$bus.$off('checkout-after-paymentDetails', this.onAfterPaymentDetails)
    this.$bus.$off('checkout-after-cartSummary', this.onAfterCartSummary)
    this.$bus.$off('checkout-before-placeOrder') // this is intentional exception as the payment methods are dynamically binding to the before-placeOrder event
    this.$bus.$off('checkout-do-placeOrder', this.onDoPlaceOrder)
    this.$bus.$off('checkout-before-edit', this.onBeforeEdit)
    this.$bus.$off('order-after-placed', this.onAfterPlaceOrder)
    this.$bus.$off('checkout-before-shippingMethods', this.onBeforeShippingMethods)
    this.$bus.$off('checkout-after-shippingMethodChanged', this.onAfterShippingMethodChanged)
  },
  computed: {
  },
  watch: {
    '$route': 'activateHashSection'
  },
  methods: {
    onAfterShippingMethodChanged (payload) {
      this.$store.dispatch('cart/refreshTotals', payload)
    },
    onBeforeShippingMethods (country) {
      this.$store.dispatch('cart/getShippingMethods', {
        country_id: country
      }).then(() => {
        this.$store.dispatch('cart/refreshTotals')
      })
    },
    onAfterPlaceOrder (order) {
      this.orderPlaced = true
      console.log(this.order)
    },
    onBeforeEdit (section) {
      this.activateSection(section)
    },
    onBeforePlaceOrder (userId) {
      if (userId) {
        this.userId = userId.toString()
      }
    },
    onAfterCartSummary (receivedData) {
      this.cartSummary = receivedData
    },
    onDoPlaceOrder (additionalPayload) {
      this.payment.paymentMethodAdditional = additionalPayload
      this.placeOrder()
    },
    onAfterPaymentDetails (receivedData, validationResult) {
      this.payment = receivedData
      this.validationResults.payment = validationResult
      this.activateSection('orderReview')
      this.savePaymentDetails()
    },
    onAfterShippingDetails (receivedData, validationResult) {
      this.shipping = receivedData
      this.validationResults.shipping = validationResult
      global.$VS.__TAX_COUNTRY__ = this.shipping.country
      this.activateSection('payment')
      this.saveShippingDetails()
    },
    onAfterPersonalDetails (receivedData, validationResult) {
      this.personalDetails = receivedData
      this.validationResults.personalDetails = validationResult
      this.activateSection('shipping')
      this.savePersonalDetails()
    },
    onNetworkStatusCheck (status) {
      this.checkConnection(status)
    },
    checkStocks () {
      let isValid = true
      for (let child of this.$children) {
        if (child.hasOwnProperty('$v')) {
          if (child.$v.$invalid) {
            // Check if child component is Personal Details.
            // If so, then ignore validation of account creation fields.
            if (child.$v.hasOwnProperty('personalDetails')) {
              if (child.$v.personalDetails.$invalid) {
                isValid = false
                break
              }
            } else {
              isValid = false
              break
            }
          }
        }
      }

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


Nightwatch e2e email updated

Nightwatch e2e email updated

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


fix: upload students list

fix: upload students list

<template>

    <el-row>
      <el-col :span="20" :offset="2">
        <el-card class="box-card clearfix">

            <el-tooltip content="删除选中学生名单" effect="light">

                          <svg class="icon " aria-hidden="true">
                            <use xlink:href="#icon-delete"></use>
                          </svg>

            </el-tooltip>
            【{{courseName}}】学生名单
            学生名单

              <el-tooltip content="下载学生模版" effect="light">

                          <svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-clouddownload"></use>
                          </svg>

              </el-tooltip>

            <el-tooltip content="上传学生名单" effect="light">

                          <svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-cloudupload"></use>
                          </svg>

            </el-tooltip>

          <el-table
            @selection-change="handleSelectionChange"
            v-loading="loading"
            :data="ExamStudentsData"
            style="width: 100%;text-align: left">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="学生邮箱"
              prop="email"
            >
            </el-table-column>
            <el-table-column
              label="学生姓名"
              prop="name"
            >
            </el-table-column>
            <el-table-column
              label="学生所属班级"
              prop="cls"
            >
            </el-table-column>
          </el-table>
        </el-card>
      </el-col>
    </el-row>

    <el-dialog
      :close-on-click-modal=false
      title="上传学生名单"
      :visible.sync="uploadDialogVisible"
      width="60%"
    >
      <el-upload
        action="http://localhost:8080/student/upload"
        :with-credentials="true"
        :data="{courseId: parseInt(id)}"
        :on-success="uploadSuccess"
        :show-file-list="false"
        name="studentFile"
        accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
        <el-button size="small" type="primary">点击上传</el-button>

只能上传excel文件

      </el-upload>
    </el-dialog>

</template>

<template>

    <el-row>
      <el-col :span="20" :offset="2">
        <el-card class="box-card clearfix">

            <el-tooltip content="删除选中学生名单" effect="light">

                          <svg class="icon " aria-hidden="true">
                            <use xlink:href="#icon-delete"></use>
                          </svg>

            </el-tooltip>
            【{{courseName}}】学生名单
            学生名单

              <el-tooltip content="下载学生模版" effect="light">

                          <svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-clouddownload"></use>
                          </svg>

              </el-tooltip>

            <el-tooltip content="上传学生名单" effect="light">

                          <svg class="icon" aria-hidden="true">
                            <use xlink:href="#icon-cloudupload"></use>
                          </svg>

            </el-tooltip>

          <el-table
            @selection-change="handleSelectionChange"
            v-loading="loading"
            :data="ExamStudentsData"
            style="width: 100%;text-align: left">
            <el-table-column
              type="selection"
              width="55">
            </el-table-column>
            <el-table-column
              label="学生邮箱"
              prop="email"
            >
            </el-table-column>
            <el-table-column
              label="学生姓名"
              prop="name"
            >
            </el-table-column>
            <el-table-column
              label="学生所属班级"
              prop="cls"
            >
            </el-table-column>
          </el-table>
        </el-card>
      </el-col>
    </el-row>

    <el-dialog
      :close-on-click-modal=false
      title="上传学生名单"
      :visible.sync="uploadDialogVisible"
      width="60%"
    >
      <el-upload
        action="http://localhost:8080//student/upload"
        :with-credentials="true"
        :data="{courseId: parseInt(id)}"
        :on-success="uploadSuccess"
        :show-file-list="false"
        name="studentFile"
        accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
        <el-button size="small" type="primary">点击上传</el-button>

只能上传excel文件

      </el-upload>
    </el-dialog>

</template>


learnt about use cases of filters and computed properties

error: pathspec '02' did not match any file(s) known to git
error: pathspec 'vue-cli/12/src/App.vue' did not match any file(s) known to git


pass form fields anytime

pass form fields anytime

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


Add menu code in card example

Add menu code in card example

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


Fixing issue #902

Fixing issue #902

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


order detail money

order detail money

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


ajout toggle file

ajout toggle file

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


product

product


Add article creation

Add article creation

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


Adjust padding

Adjust 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/NathanielDavid/Sumie.git/'


settlementView

settlementView


add(chatRoom): 完成chatroom大体布局

add(chatRoom): 完成chatroom大体布局

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


add an inline-block loading cmponent

add an inline-block loading cmponent

<template>
  <figure class="button is-loading is-primary is-outlined no-border" :style="css"></figure>
</template>

<script>
export default {
  props: ['height', 'width', 'radius'],
  computed: {
    fontSize() {
      let { radius } = this
      if (!radius)
        return '1em'

      const matched = /^(\d+(?:\.\d+)?)(%|px|em|rem|vh|wh)$/.exec(radius)
      if (!matched)
        throw new Error(`invalid radius expression: ${radius}`)

      let [_, number, unit] = matched
      let val = +number
      if (isNaN(val))
        throw new Error(`invalid radius size: ${number}`)

      if (unit == 'px')
        return val / 16 + 'em'
      else if (unit == '%')
        return val / 100 + 'em'
      else
        return radius
    },
    css() {
      return {
        width: this.width,
        height: this.height,
        fontSize: this.fontSize,
      }
    }
  }
}
</script>

<style lang="scss">
.no-border {
  border: none;
}
</style>

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


Add deep styles for buttons in core-modal

<template>

  <transition name="fade">

      <div
        class="modal"
        ref="modal"
        :tabindex="0"
        role="dialog"
        aria-labelledby="modal-title"
        :class="{ mobile: windowSize.breakpoint <= 1 }"
        :style="{ width: width, height: height }"
      >

          {{ $tr('errorAlert') }}
          {{ title }}

        <slot></slot>

  </transition>

</template>

<template>

  <transition name="fade">

      <div
        class="modal"
        ref="modal"
        :tabindex="0"
        role="dialog"
        aria-labelledby="modal-title"
        :class="{ mobile: windowSize.breakpoint <= 1 }"
        :style="{ width: width, height: height }"
      >

          {{ $tr('errorAlert') }}
          {{ title }}

        <slot>

To populate, wrap your content with  modal .

        </slot>

  </transition>

</template>


on import, quit chapter-edit-mode

on import, quit chapter-edit-mode

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/katrinleinweber/podlove-publisher.git/'


[update]两级导航

[update]两级导航

<template>

    <el-row id="project-header" ref="choosePage">

          <el-col :span="2" :offset="9">

任务

          </el-col>
          <el-col :span="2">

文件

          </el-col>
          <el-col :span="2">

日程

          </el-col>

1

        <transition name="el-zoom-in-center">

2

        </transition>

3

    </el-row>
    <transition name="fade-choose">

        <tasks :id="projectId">1</tasks>

    </transition>
    <transition name="fade-choose">

        <files :id="projectId">2</files>

    </transition>
    <transition name="fade-choose">

        <calenders :id="projectId">3</calenders>

    </transition>

  <transition name="slide-fade">

            项目成员

  </transition>
    <transition name="slide-fade">

            视图

    </transition>
    <transition name="slide-fade">

            {{projectInfo.name}}

    </transition>

</template>

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


Fix indentation

Fix indentation

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


added requestbar labels

added requestbar labels

added labels to the requestbar as suggested in the ux document

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


Adds rent's base component

Adds rent's base component

<template>
    <div id="vechile-rent-container">
        <loading-message v-if="!loaded" :message="message"></loading-message>
    </div>
</template>

<script>
export default {
  data() {
    return {
      loaded: false,
      get message() {
        return 'Loading the rents module, please wait a moment...';
      }
    };
  }
};
</script>

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


Add text-decoration-ink style

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


Add seller info.

Add seller info.

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


任务添加功能完成

任务添加功能完成

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


Add text to explain egoconf

Add text to explain egoconf

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


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


[#163] Fix sidebar on tablet/mobile resolutions

<template>

                close

                        <router-link class="px25 py20 c-black no-underline" to="/" exact>Home</router-link>

0 || category.children_data.length>0' >
                        <router-link class="px25 py20 c-black no-underline" :to="{ name: 'category', params: { id: category.id, slug: category.slug }}">{{ category.name }}</router-link>

                                <router-link class="px25 py20 no-underline" :to="{ name: 'category', params: { id: subcat.id, slug: subcat.slug }}">{{ subcat.name }}</router-link>

                        <router-link class="px25 py20 brdr-underline brdr-c-alto c-black no-underline" to="/magazine" exact>Magazine</router-link>

                        <router-link class="px25 py20 brdr-underline brdr-c-alto c-black no-underline" to="/sale" exact>Sale</router-link>

                        <router-link class="px25 py20 brdr-underline brdr-c-alto c-black no-underline" to="/order-tracking" exact>Track my order</router-link>

                        <router-link class="px25 py20 brdr-underline brdr-c-alto c-black no-underline" to="/my-account" exact>My account</router-link>

</template>


Quality of life fix to secrets page

Quality of life fix to secrets page

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


Remove highlight from non-clickable secret keys


Combined newKeyExists() and changeConflict() into keyExists() and added minor fixes.


separating styling from components

separating styling from components

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


Add a vertical modifier for checkboxes

Add a vertical modifier for checkboxes

This will allow checkboxes to display vertically rather than inline and
horizontally.

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


Add missing class year label

Add missing class year label

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


Fix eslint on signin.vue form

Fix eslint on signin.vue form

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

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


Added Contact Page

Added Contact Page

<template>

Contact

                                <form async-submit="contact.contact()">

                                        <input ng-model="contact.info.name" class="form-control" type="text" required>
                                        Name

                                        <input ng-model="contact.info.email" class="form-control" type="text" required>
                                        Email

                                        <textarea ng-model="contact.info.text" class="form-control" rows="8" placeholder="Message"></textarea>

                                        <button type="submit" class="btn btn-primary">Send Email</button>

                                </form>

                                        contact@devwars.tv

</template>

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


Adds search icon and click events

Adds search icon and click events

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


Inspectors back!

Inspectors back!


blind pass at flash.vue

blind pass at flash.vue

<template>

        <v-progress-circular size="25" class="md-accent flash-root__loading lmo-margin-right"></v-progress-circular>
        {{ flash.message | translate:flash.options }}

{{ flash.message | translate:flash.options }}

</template>

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


bug fix for undefined value

bug fix for undefined value

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


updated to define height if open on render so will close smoothly


Used the locale data

Used the locale data

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


Add examples to word preview.

Add examples to word preview.

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


Fix regression on password review #95

Fix regression on password review #95

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


add toolbar component

add toolbar component

<template>
<md-toolbar>
    <md-icon>local_dining</md-icon>
  Yumm

    <md-button class="md-icon-button">
      <md-icon>info</md-icon>
    </md-button>
    <md-button class="md-icon-button">
      <md-icon>call</md-icon>
    </md-button>
    <md-button class="md-icon-button">
      <md-icon>directions</md-icon>
    </md-button>
    <md-button class="md-icon-button">
      <md-icon>account_circle</md-icon>
    </md-button>
  </md-toolbar>
  </template>

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


Purge session upon unsuccessful new login to avoid ambiguity


update

update

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


Changed method names

Changed method names


Replaces old AppNavigation

Replaces old AppNavigation


documentation

documentation

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


fixed the bug of editor slider title

fixed the bug of editor slider title

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/BayesZou/vue-resume-editor.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/yimingjfe/vue-slider.git/'


refresh while informations changed

refresh while informations changed

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


fix button height

fix button height

<template>
  <div class="md-button">
    <slot />
  </div>
</template>

<style lang="scss" scoped>
  .md-button {
    min-width: 88px;
    height: 36px;
    padding: 0 8px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 2px;
    transition: .3s ease;
  }
</style>

<script>
  export default {
    name: 'MdButton'
  }
</script>

<template>
  <div class="md-button">
    <slot />
  </div>
</template>

<style lang="scss" scoped>
  .md-button {
    min-width: 88px;
    height: 40px;
    padding: 0 8px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 2px;
    transition: .3s ease;
  }
</style>

<script>
  export default {
    name: 'MdButton'
  }
</script>


Add Window Size

Add Window Size

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


[Logbook] added embedded force directed graph

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


Closes #84

Closes #84

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


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


create SongsBookmarks component

create SongsBookmarks component

<template>
  <panel title="Bookmarks">
    <v-data-table
      :headers="headers"
      :items="bookmarks"
      :pagination.sync="pagination"
      class="elevation-1"
    >
      <template slot="items" scope="props">
        {{ props.item.title }}
        {{ props.item.artist }}
      </template>
    </v-data-table>
  </panel>
</template>

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


tweak copy button to follow theme better

<template>

{{title}}

{{this.errorNumber}} errors

    <button v-if="showCopyButton" @click="copy()" id="copyButton">Copy</button>

</template>


Fix deadline error:

Fix deadline error:

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


Add ExpenseAward component

Add ExpenseAward component

<template>

        ΑΦΜ
        ΕΠΩΝΥΜΙΑ
        ΠΡΟΣΘΗΚΗ

        <input type="text" :name="getAFM(expense)" class="form-control">

        <input type="text" :name="getCompany(expense)" value="ΕΤΑΙΡΕΙΑ Χ" readonly="readonly">
        <input type="hidden" :name="getAFMType(expense)" value="Εθνικό">
        <input type="hidden" :value="expense" :name="getExpenseIndex(expense)">
        <button type="button" class="btn btn-default" v-on:click="incrementExpenses">Προσθήκη {{nextExpense}}ου ΑΦΜ</button>

      Ποσό
      <input name="expense_amount" type="number" class="form-control">

      <currencies></currencies>

      ΑΔΑ Σχετικής Περίληψης Διακήρυξης
      <input name="has_related_declaration_summary" class="form-control">

</template>

error: pathspec 'n3-composer/components/specific-decision-fields/common-properties/ExpenseAward.vue' did not match any file(s) known to git


Refactor cocktail page style

Refactor cocktail page 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/barprive/barprive.com.git/'


add logic for login

add logic for login


375 tweakz

375 tweakz

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


Add tags index.

Add tags index.

<template>

All Tags

        <nuxt-link :to="`/tags/${tag}`">
          {{ tag }}
        </nuxt-link>

</template>

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


sortTable也支持自定义组件

sortTable也支持自定义组件

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


Added results page.

Added results page.

<template>

          Note: Game results are posted as soon as they are available.

          <app-table :title="r20171022b.title" :sub-title="r20171022b.subTitle" :data="r20171022b.data" :columns="r20171022b.columns">
          </app-table>

{{ r20171022b.title }}

{{ r20171022b.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

          <app-table :title="r20171022a.title" :sub-title="r20171022a.subTitle" :data="r20171022a.data" :columns="r20171022a.columns">
          </app-table>

{{ r20171022a.title }}

{{ r20171022a.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

          <app-table :title="r20171021.title" :sub-title="r20171021.subTitle" :data="r20171021.data" :columns="r20171021.columns">
          </app-table>

{{ r20171021.title }}

{{ r20171021.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

          <app-table :title="r20171015b.title" :sub-title="r20171015b.subTitle" :data="r20171015b.data" :columns="r20171015b.columns">
          </app-table>

{{ r20171015b.title }}

{{ r20171015b.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

          <app-table :title="r20171015a.title" :sub-title="r20171015a.subTitle" :data="r20171015a.data" :columns="r20171015a.columns">
          </app-table>

{{ r20171015a.title }}

{{ r20171015a.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

          <app-table :title="r20171014.title" :sub-title="r20171014.subTitle" :data="r20171014.data" :columns="r20171014.columns">
          </app-table>

{{ r20171014.title }}

{{ r20171014.subTitle }}

              {{ a.division}}

              {{ a.homeTeam }} - {{ a.homeTeamScore }}

              vs

              {{ a.awayTeam }} - {{ a.awayTeamScore }}

</template>

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


update

update

<template>
  <div id="wallpaper-list">
  </div>
</template>

<script>
</script>

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


removing dead space from where tabs used to be

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


修改 frozenTable.vue

修改 frozenTable.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/wuazhu/chinapost.git/'


Buttons

Buttons

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


Make search sticky

Make search sticky

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/bryans99/yuki-eurus.git/'


Actualización

Actualización

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/jesus-repos/VueToolBox.git/'


bfrs has its own selected feature collection, no need to check whether selected feature is a bushfire report or not

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


add template

add template

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


Remove store subscriber on tab removal.

Remove store subscriber on tab removal.

The subscriber to the LOAD_REQUEST mutator was not being removed when the tab was destroyed. This lead to errors when a request was loaded.


restore login page functionality

restore login page functionality

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


улучшает ux

улучшает ux

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


anouncer working with class

anouncer working with class

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


Create a better cleanup

Create a better cleanup

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


Format meteor shower dates and remove moon phases

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


add reference of currentPage in mdTablePagination (#166)

* Fix table pagination

* use totalItems instead of mdTotal in the template


fix(events): add event id on the created period

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


Fix typo

Fix typo

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


Adds check if user exist

Adds check if user exist

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


add basic swipe closing to sidebar

add basic swipe closing to sidebar

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


Finished  S13. E174: Understanding mixins

<template>

Filters & Mixins

    <input v-model="filterText">

{{ fruit }}

</template>

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


add draft button

add draft button

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


convert from console.log -> standard logging

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


readd background image

readd background image


Improve logo

Improve logo


Remove users array

Remove users array


Add function to toggle sidenav and add page title


New FileManager Vue component, FilePicker is deprecated.

<template>

                            {{ folder.name }}

                        {{ folder.name }}

                <button type="button" class="btn btn-sm btn-primary header-btn-add" id="btnAddFiles" v-if="dropzone">
                     {{ $t('Upload files') }}
                </button>

            <button class="filepicker-btn-close" type="button" v-if="this.modal" @click="closeModal">

            </button>

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

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

                        <button class="dropdown-item" type="button" @click="deleteSelected">{{ $t('Delete') }}</button>
                        <button
                            class="dropdown-item"
                            :class="{ disabled: !folder.id }"
                            type="button"
                            @click="moveToParentFolder()"
                        >
                            {{ $t('Move to parent folder') }}
                        </button>

                        <button class="dropdown-item disabled" type="button">
                            {{ $tc('# items selected', selectedItems.length, { count: selectedItems.length }) }}
                        </button>

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

            <vue-dropzone
                id="dropzone"
                ref="dropzone"
                :options="dropOptions"
                @vdropzone-success="dropzoneSuccess"
                @vdropzone-sending="dropzoneSending"
                @vdropzone-complete="dropzoneComplete"
                v-if="dropzone"
            >
            </vue-dropzone>

                <div
                    class="filemanager-item filemanager-item-with-name filemanager-item-editable"
                    v-for="item in filteredItems"
                    @click="check(item, $event)"
                    :id="'item_' + item.id"
                    :class="{
                        'filemanager-item-selected': selectedItems.indexOf(item) !== -1,
                        'filemanager-item-folder': item.type === 'f',
                        'filemanager-item-file': item.type !== 'f',
                        'filemanager-item-dragging-source': dragging && selectedItems.indexOf(item) !== -1,
                    }"
                    draggable="true"
                    @drop="drop(item, $event)"
                    @dragstart="dragStart(item, $event)"
                    @dragover="dragOver($event)"
                    @dragenter="dragEnter($event)"
                    @dragleave="dragLeave($event)"
                    @dragend="dragEnd($event)"
                    @dblclick="onDoubleClick(item)"
                >

{{ item.name }}

            <button
                class="btn btn-success filepicker-btn-add btn-add-multiple"
                type="button"
                :disabled="selectedFiles.length < 1"
                @click="addSelectedFiles()"
                id="btn-add-selected-files"
                v-if="options.multiple"
            >
                {{ $t('Add selected files') }}
            </button>

            <button
                class="btn btn-success filepicker-btn-add btn-add-single"
                :disabled="selectedFiles.length !== 1"
                type="button"
                @click="addSingleFile(selectedFiles[0])"
                id="btn-add-selected-file"
                v-if="options.single"
            >
                {{ $t('Add selected file') }}
            </button>

</template>

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


:bug:勾选待修复

:bug:勾选待修复

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


Don't asynchronously upload guests

Don't asynchronously upload guests

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


Updated

Updated

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/CranePHP/core-ui.git/'


Updating pricing

Updating pricing

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


added default setting for dashboard feed widget

<template>

    <form class="pk-panel-teaser uk-form uk-form-stacked" v-if="editing">

            {{ 'Title' | trans }}

                <input id="form-feed-title" class="uk-width-1-1" type="text" name="widget[title]" v-model="widget.title">

            {{ 'URL' | trans }}

                <input id="form-feed-url" class="uk-width-1-1" type="text" name="url" v-model="widget.url" lazy>

            {{ 'Number of Posts' | trans }}

                <select id="form-feed-count" class="uk-width-1-1" v-model="widget.count" number>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                </select>

            {{ 'Post Content' | trans }}

                    <input type="radio" value="" v-model="widget.content"> {{ "Don't show" | trans }}

                    <input type="radio" value="1" v-model="widget.content"> {{ 'Show on all posts' | trans }}

                    <input type="radio" value="2" v-model="widget.content"> {{ 'Only show on first post.' | trans }}

    </form>

{{ widget.title }}

                {{ entry.title }} {{ entry.publishedDate | relativeDate }}

{{ entry.contentSnippet }}

{{ $index == 0 ? entry.contentSnippet : '' }}

{{ 'Unable to retrieve feed data.' | trans }}

{{ 'No URL given.' | trans }}

        <v-loader></v-loader>

</template>


Added toolbar buttons

Added toolbar buttons

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


Refactoring Articles with Point on Prices, Vue-MDL and deletion of Price modification (#65)


Added comments

Added comments

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/ludo237/panetta-family.git/'


Add favorite.

Add favorite.

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


Can now remove tabs

Can now remove tabs

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


Props casting

Props casting

https://vuejs.org/v2/guide/components-props.html#Prop-Casing-camelCase-vs-kebab-case
> HTML attribute names are case-insensitive, so browsers will interpret any uppercase characters as lowercase. That means when you’re using in-DOM templates, camelCased prop names need to use their kebab-cased

<template>
  <div class="q-pa-lg flex flex-center">
    <q-pagination
      v-model="current"
      color="purple"
      :max="10"
      :maxPages="6"
      :boundary-numbers="true"
    >
    </q-pagination>
  </div>
</template>

<script>
export default {
  data () {
    return {
      current: 6
    }
  }
}
</script>

<template>
  <div class="q-pa-lg flex flex-center">
    <q-pagination
      v-model="current"
      color="purple"
      :max="10"
      :maxPages="6"
      :boundaryNumbers="true"
    >
    </q-pagination>
  </div>
</template>

<script>
export default {
  data () {
    return {
      current: 6
    }
  }
}
</script>


add a upload images layout in Image.vue

add a upload images layout in Image.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/joriscai/myblog-vue.git/'


Remove hero logo border buttom

Remove hero logo border buttom

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


Fix homepage link styles.

Fix homepage link styles.

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


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 post view

update post view

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


修改>为>

修改>为>

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/Robert-Xie/baoshu.git/'


update: demo script

update: demo script

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


following new logs struc. for activity panel

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


Increase height of list container

Increase height of list container

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


calculate expires in time to timestamp

calculate expires in time to 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/notadd/administration.git/'


fixed bugs

fixed bugs

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


Invisible when click downdown menu

Invisible when click downdown menu

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/StoneDot/map-board.git/'


Adding component for The balance transaction object description

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


swipecell

swipecell

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


Add styling for overview page

Add styling for overview 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/table-six/footos-web.git/'


优化绘图部分

优化绘图部分

<template>

        <el-row>
            <el-col :span="12">

            </el-col>
            <el-col :span="12">

            </el-col>
            <el-col :span="12">

            </el-col>
            <el-col :span="12">

            </el-col>
            <el-col :span="24">
                more>>
            </el-col>
        </el-row>

</template>


update

update

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


尚未重构的页面通过nginx代理旧站内容，使用新窗口打开以避免404

尚未重构的页面通过nginx代理旧站内容，使用新窗口打开以避免404

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/bihaiyouhong12/bhuh.net.git/'


create carousel

create carousel

<template>

<swipe :options="swipeOptions">
  <swipe-item></swipe-item>
  <swipe-item></swipe-item>
  <swipe-item></swipe-item>
</swipe>

</template>

error: pathspec 'projects/day7/trailer/src/gallery.vue' did not match any file(s) known to git


:lipstick: Add missing border color

:lipstick: Add missing border color

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


Update OfflineClient.vue

Update OfflineClient.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/water-law/vue-admin.git/'


Include projects options load as part of Entry edit trigger.

This makes sure all project options are loaded before the entry becomes editable, which fixes the default selected item issue.

<template>

    <template v-if="edit && global.perms.change_entry">

            <select2 name="entry-project"
                     v-model="project"
                     :options="projects"
                     :selected="project"
                     @select2-select="selectProjectOption"></select2>

            <input name="entry-note"
                   type="text"
                   class="form-control form-control-sm"
                   ref="note"
                   placeholder="Note"
                   v-model="note" />

            <input name="entry-duration"
                   type="text"
                   class="form-control form-control-sm text-right font-weight-bold"
                   ref="duration"
                   placeholder="0:00"
                   v-model="duration" />

            <button name="entry-save"
                    class="btn btn-success btn-sm w-100"
                    v-on:click="saveEntry">
                Save
            </button>

    </template>

    <template v-else>

                {{ project_details.client_details.name }}

            {{ project_details.name }}

                {{ task_details.name }}

            {{ note }}

            {{ duration }}

        <template v-if="editable">

                <template v-if="global.perms.change_entry || global.perms.delete_entry">
                    <button name="entry-menu"
                            class="btn btn-faded btn-sm btn-icon dropdown-toggle"
                            type="button"
                            data-toggle="dropdown"
                            aria-haspopup="true"
                            aria-expanded="false">

                    </button>

                            Edit

                            Delete

                </template>

        </template>
    </template>

</template>

<template>

    <template v-if="edit && global.perms.change_entry">

            <select2 name="entry-project"
                     :options="projects"
                     :selected="project"
                     v-model="project"
                     @select2-select="selectProjectOption"></select2>

            <input name="entry-note"
                   type="text"
                   class="form-control form-control-sm"
                   ref="note"
                   placeholder="Note"
                   v-model="note" />

            <input name="entry-duration"
                   type="text"
                   class="form-control form-control-sm text-right font-weight-bold"
                   ref="duration"
                   placeholder="0:00"
                   v-model="duration" />

            <button name="entry-save"
                    class="btn btn-success btn-sm w-100"
                    v-on:click="saveEntry">
                Save
            </button>

    </template>

    <template v-else>

                {{ project_details.client_details.name }}

            {{ project_details.name }}

                {{ task_details.name }}

            {{ note }}

            {{ duration }}

        <template v-if="editable">

                <template v-if="global.perms.change_entry || global.perms.delete_entry">
                    <button name="entry-menu"
                            class="btn btn-faded btn-sm btn-icon dropdown-toggle"
                            type="button"
                            data-toggle="dropdown"
                            aria-haspopup="true"
                            aria-expanded="false">

                    </button>

                            Edit

                            Delete

                </template>

        </template>
    </template>

</template>


Respect permissions in Entry menu.

Respect permissions in Entry menu.

<template>

    <template v-if="edit && global.perms.change_entry">

            <projects-select :selected="project_details.url" @project-select="projectSelect"></projects-select>

            <input name="entry-note"
                   type="text"
                   class="form-control form-control-sm"
                   ref="note"
                   placeholder="Note"
                   v-model="note" />

            <input name="entry-duration"
                   type="text"
                   class="form-control form-control-sm text-right font-weight-bold"
                   ref="duration"
                   placeholder="0:00"
                   v-model="duration" />

            <button name="entry-save"
                    class="btn btn-success btn-sm w-100"
                    v-on:click="saveEntry">
                Save
            </button>

    </template>

    <template v-else>

                {{ project_details.client_details.name }}

            {{ project_details.name }}

                {{ task_details.name }}

            {{ note }}

            {{ duration }}

        <template v-if="editable">

                <template v-if="global.perms.change_entry || global.perms.delete_entry">
                    <button name="entry-menu"
                            class="btn btn-faded btn-sm btn-icon dropdown-toggle"
                            type="button"
                            data-toggle="dropdown"
                            aria-haspopup="true"
                            aria-expanded="false">

                    </button>

                            Edit

                            Delete

                </template>

        </template>
    </template>

</template>

<template>

    <template v-if="edit && global.perms.change_entry">

            <projects-select :selected="project_details.url" @project-select="projectSelect"></projects-select>

            <input name="entry-note"
                   type="text"
                   class="form-control form-control-sm"
                   ref="note"
                   placeholder="Note"
                   v-model="note" />

            <input name="entry-duration"
                   type="text"
                   class="form-control form-control-sm text-right font-weight-bold"
                   ref="duration"
                   placeholder="0:00"
                   v-model="duration" />

            <button name="entry-save"
                    class="btn btn-success btn-sm w-100"
                    v-on:click="saveEntry">
                Save
            </button>

    </template>

    <template v-else>

                {{ project_details.client_details.name }}

            {{ project_details.name }}

                {{ task_details.name }}

            {{ note }}

            {{ duration }}

        <template v-if="editable">

                <template v-if="global.perms.change_entry">
                    <button name="entry-menu"
                            class="btn btn-faded btn-sm btn-icon dropdown-toggle"
                            type="button"
                            data-toggle="dropdown"
                            aria-haspopup="true"
                            aria-expanded="false">

                    </button>

                            Edit

                            Delete

                </template>

        </template>
    </template>

</template>


simplify chapter start time input (remove format choice)

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/katrinleinweber/podlove-publisher.git/'


refactor v-validate with validity in component Mail


Added statistics by day

Added statistics by day

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


Removes firebase

Removes firebase

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


Simplified token create button display

Simplified token create button display

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