fix(front): upload quota
This commit is contained in:
		
							parent
							
								
									5acdb39f59
								
							
						
					
					
						commit
						4d31386944
					
				| 
						 | 
					@ -24,7 +24,7 @@ export function humanSize (bytes: number, isSI = true) {
 | 
				
			||||||
  const threshold = isSI ? 1000 : 1024
 | 
					  const threshold = isSI ? 1000 : 1024
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (Math.abs(bytes) < threshold) {
 | 
					  if (Math.abs(bytes) < threshold) {
 | 
				
			||||||
    return `${bytes} B`
 | 
					    return `${Math.floor(bytes)}`
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const units = HUMAN_UNITS[isSI ? 'SI' : 'powerOf2']
 | 
					  const units = HUMAN_UNITS[isSI ? 'SI' : 'powerOf2']
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,25 +59,8 @@ const libraryCreated = (library: Library) => {
 | 
				
			||||||
    :h1="t('views.content.libraries.Home.header.libraries')"
 | 
					    :h1="t('views.content.libraries.Home.header.libraries')"
 | 
				
			||||||
    page-header
 | 
					    page-header
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <Alert
 | 
					 | 
				
			||||||
      v-if="libraries.length == 0"
 | 
					 | 
				
			||||||
      yellow
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      {{ t('views.content.libraries.Home.empty.noLibrary') }}
 | 
					 | 
				
			||||||
      <Button
 | 
					 | 
				
			||||||
        :aria-expanded="!hiddenForm"
 | 
					 | 
				
			||||||
        :icon="hiddenForm ? 'bi-plus' : 'bi-minus'"
 | 
					 | 
				
			||||||
        @click.prevent="hiddenForm = !hiddenForm"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        {{ t('views.content.libraries.Home.link.createLibrary') }}
 | 
					 | 
				
			||||||
      </Button>
 | 
					 | 
				
			||||||
    </Alert>
 | 
					 | 
				
			||||||
    <library-form
 | 
					 | 
				
			||||||
      v-if="!hiddenForm"
 | 
					 | 
				
			||||||
      @created="libraryCreated"
 | 
					 | 
				
			||||||
    />
 | 
					 | 
				
			||||||
  </Section>
 | 
					 | 
				
			||||||
  <quota />
 | 
					  <quota />
 | 
				
			||||||
 | 
					</Section>
 | 
				
			||||||
  <Spacer />
 | 
					  <Spacer />
 | 
				
			||||||
  <Section
 | 
					  <Section
 | 
				
			||||||
    v-if="libraries.length > 0"
 | 
					    v-if="libraries.length > 0"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,29 +62,22 @@ const purgeErroredFiles = () => purge('errored')
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <Section
 | 
					  <Loader v-if="isLoading" />
 | 
				
			||||||
    :h3="t('views.content.libraries.Quota.header.currentUsage')"
 | 
					  <Alert
 | 
				
			||||||
 | 
					    data-percent="progress"
 | 
				
			||||||
 | 
					    :green="progress < 60"
 | 
				
			||||||
 | 
					    :yellow="progress >= 60 && progress < 96"
 | 
				
			||||||
 | 
					    :red="progress >= 95"
 | 
				
			||||||
 | 
					    style="width: 100%;"
 | 
				
			||||||
  >
 | 
					  >
 | 
				
			||||||
    <div
 | 
					    <h3>{{ t('views.content.libraries.Quota.header.currentUsage') }}</h3>
 | 
				
			||||||
      v-if="isLoading"
 | 
					    <div :class="['ui', {'success': progress < 60}, {'warning': progress >= 60 && progress < 96}, {'error': progress >= 95}, 'progress']">
 | 
				
			||||||
      :class="['ui', {'active': isLoading}, 'inverted', 'dimmer']"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <div class="ui text loader">
 | 
					 | 
				
			||||||
        {{ t('views.content.libraries.Quota.loading.currentUsage') }}
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <Alert
 | 
					 | 
				
			||||||
      data-percent="progress"
 | 
					 | 
				
			||||||
      :green="progress < 60"
 | 
					 | 
				
			||||||
      :yellow="progress >= 60 && progress < 96"
 | 
					 | 
				
			||||||
      :red="progress >= 95"
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
      <div
 | 
					      <div
 | 
				
			||||||
        class="bar"
 | 
					        class="bar"
 | 
				
			||||||
        :style="{width: `${progress}%`}"
 | 
					        :style="{width: `${progress}%`}"
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        <div class="progress">
 | 
					        <div class="progress">
 | 
				
			||||||
          {{ t('views.content.libraries.Quota.label.percentUsed', {progress: progress}) }}
 | 
					          {{ t('views.content.libraries.Quota.label.percentUsed', {progress: humanSize(progress)}) }}
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div
 | 
					      <div
 | 
				
			||||||
| 
						 | 
					@ -93,123 +86,211 @@ const purgeErroredFiles = () => purge('errored')
 | 
				
			||||||
      >
 | 
					      >
 | 
				
			||||||
        {{ t('views.content.libraries.Quota.label.currentUsage', {max: humanSize(quotaStatus.max * 1000 * 1000), currentAmount: humanSize(quotaStatus.current * 1000 * 1000)}) }}
 | 
					        {{ t('views.content.libraries.Quota.label.currentUsage', {max: humanSize(quotaStatus.max * 1000 * 1000), currentAmount: humanSize(quotaStatus.current * 1000 * 1000)}) }}
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </Alert>
 | 
					    </div>
 | 
				
			||||||
    <Layout
 | 
					  </Alert>
 | 
				
			||||||
      v-if="quotaStatus"
 | 
					  <Layout
 | 
				
			||||||
      flex
 | 
					    v-if="quotaStatus"
 | 
				
			||||||
 | 
					    flex
 | 
				
			||||||
 | 
					  >
 | 
				
			||||||
 | 
					    <Alert
 | 
				
			||||||
 | 
					      v-if="quotaStatus.pending > 0"
 | 
				
			||||||
 | 
					      yellow
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <Alert
 | 
					      <div class="statistic">
 | 
				
			||||||
        v-if="quotaStatus.pending > 0"
 | 
					        <div class="value">
 | 
				
			||||||
        yellow
 | 
					          {{ humanSize(quotaStatus.pending * 1000 * 1000) }}
 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <div class="statistic">
 | 
					 | 
				
			||||||
          <div class="value">
 | 
					 | 
				
			||||||
            {{ humanSize(quotaStatus.pending * 1000 * 1000) }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
          <div class="label">
 | 
					 | 
				
			||||||
            {{ t('views.content.libraries.Quota.label.pending') }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <Spacer />
 | 
					        <div class="label">
 | 
				
			||||||
        <Layout flex>
 | 
					          {{ t('views.content.libraries.Quota.label.pending') }}
 | 
				
			||||||
          <Link
 | 
					        </div>
 | 
				
			||||||
            primary
 | 
					      </div>
 | 
				
			||||||
            solid
 | 
					      <Spacer />
 | 
				
			||||||
            low-height
 | 
					      <Layout flex>
 | 
				
			||||||
            :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'pending'}])}}"
 | 
					        <Link
 | 
				
			||||||
          >
 | 
					          primary
 | 
				
			||||||
            {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
					          solid
 | 
				
			||||||
          </Link>
 | 
					          low-height
 | 
				
			||||||
 | 
					          :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'pending'}])}}"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
				
			||||||
 | 
					        </Link>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          <dangerous-button
 | 
					        <dangerous-button
 | 
				
			||||||
            low-height
 | 
					          low-height
 | 
				
			||||||
            :action="purgePendingFiles"
 | 
					          :action="purgePendingFiles"
 | 
				
			||||||
            :title="t('views.content.libraries.Quota.modal.purgePending.header')"
 | 
					          :title="t('views.content.libraries.Quota.modal.purgePending.header')"
 | 
				
			||||||
          >
 | 
					        >
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
 | 
					          <template #modal-content>
 | 
				
			||||||
 | 
					            {{ t('views.content.libraries.Quota.modal.purgePending.content.description') }}
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					          <template #modal-confirm>
 | 
				
			||||||
            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
            <template #modal-content>
 | 
					          </template>
 | 
				
			||||||
              {{ t('views.content.libraries.Quota.modal.purgePending.content.description') }}
 | 
					        </dangerous-button>
 | 
				
			||||||
            </template>
 | 
					      </Layout>
 | 
				
			||||||
            <template #modal-confirm>
 | 
					    </Alert>
 | 
				
			||||||
              {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					    <Alert
 | 
				
			||||||
            </template>
 | 
					      v-if="quotaStatus.skipped > 0"
 | 
				
			||||||
          </dangerous-button>
 | 
					      yellow
 | 
				
			||||||
        </Layout>
 | 
					    >
 | 
				
			||||||
      </Alert>
 | 
					      <div class="ui tiny statistic">
 | 
				
			||||||
      <Alert
 | 
					        <div class="value">
 | 
				
			||||||
        v-if="quotaStatus.skipped > 0"
 | 
					          {{ humanSize(quotaStatus.skipped * 1000 * 1000) }}
 | 
				
			||||||
        yellow
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <div class="ui tiny statistic">
 | 
					 | 
				
			||||||
          <div class="value">
 | 
					 | 
				
			||||||
            {{ humanSize(quotaStatus.skipped * 1000 * 1000) }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
          <div class="label">
 | 
					 | 
				
			||||||
            {{ t('views.content.libraries.Quota.label.skipped') }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <Spacer />
 | 
					        <div class="label">
 | 
				
			||||||
        <Layout flex>
 | 
					          {{ t('views.content.libraries.Quota.label.skipped') }}
 | 
				
			||||||
          <Link
 | 
					 | 
				
			||||||
            primary
 | 
					 | 
				
			||||||
            solid
 | 
					 | 
				
			||||||
            low-height
 | 
					 | 
				
			||||||
            :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'skipped'}])}}"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
					 | 
				
			||||||
          </Link>
 | 
					 | 
				
			||||||
          <dangerous-button
 | 
					 | 
				
			||||||
            low-height
 | 
					 | 
				
			||||||
            :action="purgeSkippedFiles"
 | 
					 | 
				
			||||||
            :title="t('views.content.libraries.Quota.modal.purgeSkipped.header')"
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					 | 
				
			||||||
            <template #modal-content>
 | 
					 | 
				
			||||||
              {{ t('views.content.libraries.Quota.modal.purgeSkipped.content.description') }}
 | 
					 | 
				
			||||||
            </template>
 | 
					 | 
				
			||||||
            <template #modal-confirm>
 | 
					 | 
				
			||||||
              {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					 | 
				
			||||||
            </template>
 | 
					 | 
				
			||||||
          </dangerous-button>
 | 
					 | 
				
			||||||
        </Layout>
 | 
					 | 
				
			||||||
      </Alert>
 | 
					 | 
				
			||||||
      <Alert
 | 
					 | 
				
			||||||
        v-if="quotaStatus.errored > 0"
 | 
					 | 
				
			||||||
        red
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
        <div class="ui tiny danger statistic">
 | 
					 | 
				
			||||||
          <div class="value">
 | 
					 | 
				
			||||||
            {{ humanSize(quotaStatus.errored * 1000 * 1000) }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
          <div class="label">
 | 
					 | 
				
			||||||
            {{ t('views.content.libraries.Quota.label.errored') }}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <Spacer />
 | 
					      </div>
 | 
				
			||||||
        <Layout flex>
 | 
					      <Spacer />
 | 
				
			||||||
          <Link
 | 
					      <Layout flex>
 | 
				
			||||||
            primary
 | 
					        <Link
 | 
				
			||||||
            solid
 | 
					          primary
 | 
				
			||||||
            low-height
 | 
					          solid
 | 
				
			||||||
            :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'errored'}])}}"
 | 
					          low-height
 | 
				
			||||||
          >
 | 
					          :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'skipped'}])}}"
 | 
				
			||||||
            {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
					        >
 | 
				
			||||||
          </Link>
 | 
					          {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
				
			||||||
          <dangerous-button
 | 
					        </Link>
 | 
				
			||||||
            low-height
 | 
					        <dangerous-button
 | 
				
			||||||
            :action="purgeErroredFiles"
 | 
					          low-height
 | 
				
			||||||
            :title="t('views.content.libraries.Quota.modal.purgeErrored.header')"
 | 
					          :action="purgeSkippedFiles"
 | 
				
			||||||
          >
 | 
					          :title="t('views.content.libraries.Quota.modal.purgeSkipped.header')"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
 | 
					          <template #modal-content>
 | 
				
			||||||
 | 
					            {{ t('views.content.libraries.Quota.modal.purgeSkipped.content.description') }}
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					          <template #modal-confirm>
 | 
				
			||||||
            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
            <template #modal-content>
 | 
					          </template>
 | 
				
			||||||
              {{ t('views.content.libraries.Quota.modal.purgeErrored.content.description') }}
 | 
					        </dangerous-button>
 | 
				
			||||||
            </template>
 | 
					      </Layout>
 | 
				
			||||||
            <template #modal-confirm>
 | 
					    </Alert>
 | 
				
			||||||
              {{ t('views.content.libraries.Quota.button.purge') }}
 | 
					    <Alert
 | 
				
			||||||
            </template>
 | 
					      v-if="quotaStatus.errored > 0"
 | 
				
			||||||
          </dangerous-button>
 | 
					      red
 | 
				
			||||||
        </Layout>
 | 
					    >
 | 
				
			||||||
      </Alert>
 | 
					      <div class="ui tiny danger statistic">
 | 
				
			||||||
    </Layout>
 | 
					        <div class="value">
 | 
				
			||||||
  </Section>
 | 
					          {{ humanSize(quotaStatus.errored * 1000 * 1000) }}
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="label">
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.label.errored') }}
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <Spacer />
 | 
				
			||||||
 | 
					      <Layout flex>
 | 
				
			||||||
 | 
					        <Link
 | 
				
			||||||
 | 
					          primary
 | 
				
			||||||
 | 
					          solid
 | 
				
			||||||
 | 
					          low-height
 | 
				
			||||||
 | 
					          :to="{name: 'content.libraries.files', query: {q: compileTokens([{field: 'status', value: 'errored'}])}}"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.link.viewFiles') }}
 | 
				
			||||||
 | 
					        </Link>
 | 
				
			||||||
 | 
					        <dangerous-button
 | 
				
			||||||
 | 
					          low-height
 | 
				
			||||||
 | 
					          :action="purgeErroredFiles"
 | 
				
			||||||
 | 
					          :title="t('views.content.libraries.Quota.modal.purgeErrored.header')"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
 | 
					          <template #modal-content>
 | 
				
			||||||
 | 
					            {{ t('views.content.libraries.Quota.modal.purgeErrored.content.description') }}
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					          <template #modal-confirm>
 | 
				
			||||||
 | 
					            {{ t('views.content.libraries.Quota.button.purge') }}
 | 
				
			||||||
 | 
					          </template>
 | 
				
			||||||
 | 
					        </dangerous-button>
 | 
				
			||||||
 | 
					      </Layout>
 | 
				
			||||||
 | 
					    </Alert>
 | 
				
			||||||
 | 
					  </Layout>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
 | 
					.ui.progress {
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    display: -webkit-box;
 | 
				
			||||||
 | 
					    display: flex;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 20px;
 | 
				
			||||||
 | 
					    border: none;
 | 
				
			||||||
 | 
					    margin: 1em 0 2.5em;
 | 
				
			||||||
 | 
					    box-shadow: none;
 | 
				
			||||||
 | 
					    background: rgba(0,0,0,.1);
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    border-radius: .28571429rem
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress .bar {
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    line-height: 1;
 | 
				
			||||||
 | 
					    position: relative;
 | 
				
			||||||
 | 
					    width: 0;
 | 
				
			||||||
 | 
					    min-width: 2em;
 | 
				
			||||||
 | 
					    background: #888;
 | 
				
			||||||
 | 
					    border-radius: .28571429rem;
 | 
				
			||||||
 | 
					    -webkit-transition: width .1s ease,background-color .1s ease;
 | 
				
			||||||
 | 
					    transition: width .1s ease,background-color .1s ease;
 | 
				
			||||||
 | 
					    overflow: hidden
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress .bar>.progress {
 | 
				
			||||||
 | 
					    white-space: nowrap;
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    width: auto;
 | 
				
			||||||
 | 
					    font-size: .92857143em;
 | 
				
			||||||
 | 
					    top: 50%;
 | 
				
			||||||
 | 
					    right: .5em;
 | 
				
			||||||
 | 
					    left: auto;
 | 
				
			||||||
 | 
					    bottom: auto;
 | 
				
			||||||
 | 
					    color: var(--background-color);
 | 
				
			||||||
 | 
					    text-shadow: none;
 | 
				
			||||||
 | 
					    margin-top: -.5em;
 | 
				
			||||||
 | 
					    font-weight: 700;
 | 
				
			||||||
 | 
					    text-align: left
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress>.label {
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    font-size: 1em;
 | 
				
			||||||
 | 
					    top: 100%;
 | 
				
			||||||
 | 
					    right: auto;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: auto;
 | 
				
			||||||
 | 
					    font-weight: 700;
 | 
				
			||||||
 | 
					    text-shadow: none;
 | 
				
			||||||
 | 
					    margin-top: .2em;
 | 
				
			||||||
 | 
					    text-align: center;
 | 
				
			||||||
 | 
					    -webkit-transition: color .4s ease;
 | 
				
			||||||
 | 
					    transition: color .4s ease
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.success .bar {
 | 
				
			||||||
 | 
					    background-color: var(--success-color)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.success .bar,.ui.progress.success .bar:after {
 | 
				
			||||||
 | 
					    -webkit-animation: none;
 | 
				
			||||||
 | 
					    animation: none
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.warning .bar {
 | 
				
			||||||
 | 
					    background-color: var(--warning-color)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.warning .bar,.ui.progress.warning .bar:after {
 | 
				
			||||||
 | 
					    -webkit-animation: none;
 | 
				
			||||||
 | 
					    animation: none
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.error .bar {
 | 
				
			||||||
 | 
					    background-color: var(--danger-color)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.ui.progress.error .bar,.ui.progress.error .bar:after {
 | 
				
			||||||
 | 
					    -webkit-animation: none;
 | 
				
			||||||
 | 
					    animation: none
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue