Increased the height of the graph when dealing with 3 plus legends

<script>
  import d3 from 'd3';
  import GraphLegend from './graph/legend.vue';
  import GraphFlag from './graph/flag.vue';
  import GraphDeployment from './graph/deployment.vue';
  import monitoringPaths from './monitoring_paths.vue';
  import MonitoringMixin from '../mixins/monitoring_mixins';
  import eventHub from '../event_hub';
  import measurements from '../utils/measurements';
  import { timeScaleFormat } from '../utils/date_time_formatters';
  import createTimeSeries from '../utils/multiple_time_series';
  import bp from '../../breakpoints';

  const bisectDate = d3.bisector(d => d.time).left;

  export default {
    props: {
      graphData: {
        type: Object,
        required: true,
      },
      classType: {
        type: String,
        required: true,
      },
      updateAspectRatio: {
        type: Boolean,
        required: true,
      },
      deploymentData: {
        type: Array,
        required: true,
      },
    },

    mixins: [MonitoringMixin],

    data() {
      return {
        baseGraphHeight: 450,
        baseGraphWidth: 600,
        graphHeight: 450,
        graphWidth: 600,
        graphHeightOffset: 120,
        margin: {},
        unitOfDisplay: '',
        areaColorRgb: '#8fbce8',
        lineColorRgb: '#1f78d1',
        yAxisLabel: '',
        legendTitle: '',
        reducedDeploymentData: [],
        measurements: measurements.large,
        currentData: {
          time: new Date(),
          value: 0,
        },
        currentDataIndex: 0,
        currentXCoordinate: 0,
        currentFlagPosition: 0,
        showFlag: false,
        showDeployInfo: true,
        timeSeries: [],
      };
    },

    components: {
      GraphLegend,
      GraphFlag,
      GraphDeployment,
      monitoringPaths,
    },

    computed: {
      outterViewBox() {
        return `0 0 ${this.baseGraphWidth} ${this.baseGraphHeight}`;
      },

      innerViewBox() {
        if ((this.baseGraphWidth - 150) > 0) {
          return `0 0 ${this.baseGraphWidth - 150} ${this.baseGraphHeight}`;
        }
        return '0 0 0 0';
      },

      axisTransform() {
        return `translate(70, ${this.graphHeight - 100})`;
      },

      paddingBottomRootSvg() {
        return {
          paddingBottom: `${(Math.ceil(this.baseGraphHeight * 100) / this.baseGraphWidth) || 0}%`,
        };
      },
    },

    methods: {
      draw() {
        const breakpointSize = bp.getBreakpointSize();
        const query = this.graphData.queries[0];
        this.margin = measurements.large.margin;
        if (breakpointSize === 'xs' || breakpointSize === 'sm') {
          this.graphHeight = 300;
          this.margin = measurements.small.margin;
          this.measurements = measurements.small;
        }
        this.unitOfDisplay = query.unit || '';
        this.yAxisLabel = this.graphData.y_label || 'Values';
        this.legendTitle = query.label || 'Average';
        this.graphWidth = this.$refs.baseSvg.clientWidth -
                     this.margin.left - this.margin.right;
        this.graphHeight = this.graphHeight - this.margin.top - this.margin.bottom;
        this.baseGraphHeight = this.graphHeight;
        this.baseGraphWidth = this.graphWidth;
        this.renderAxesPaths();
        this.formatDeployments();
      },

      handleMouseOverGraph(e) {
        let point = this.$refs.graphData.createSVGPoint();
        point.x = e.clientX;
        point.y = e.clientY;
        point = point.matrixTransform(this.$refs.graphData.getScreenCTM().inverse());
        point.x = point.x += 7;
        const firstTimeSeries = this.timeSeries[0];
        const timeValueOverlay = firstTimeSeries.timeSeriesScaleX.invert(point.x);
        const overlayIndex = bisectDate(firstTimeSeries.values, timeValueOverlay, 1);
        const d0 = firstTimeSeries.values[overlayIndex - 1];
        const d1 = firstTimeSeries.values[overlayIndex];
        if (d0 === undefined || d1 === undefined) return;
        const evalTime = timeValueOverlay - d0[0] > d1[0] - timeValueOverlay;
        this.currentData = evalTime ? d1 : d0;
        this.currentDataIndex = evalTime ? overlayIndex : (overlayIndex - 1);
        this.currentXCoordinate = Math.floor(firstTimeSeries.timeSeriesScaleX(this.currentData.time));
        const currentDeployXPos = this.mouseOverDeployInfo(point.x);

        if (this.currentXCoordinate > (this.graphWidth - 200)) {
          this.currentFlagPosition = this.currentXCoordinate - 103;
        } else {
          this.currentFlagPosition = this.currentXCoordinate;
        }

        if (currentDeployXPos) {
          this.showFlag = false;
        } else {
          this.showFlag = true;
        }
      },

      renderAxesPaths() {
        this.timeSeries = createTimeSeries(this.graphData.queries[0].result,
        this.graphWidth,
        this.graphHeight,
        this.graphHeightOffset);

        if (this.timeSeries.length > 3) {
          this.baseGraphHeight = this.baseGraphHeight += (this.timeSeries.length - 3) * 20;
        }

        const axisXScale = d3.time.scale()
          .range([0, this.graphWidth]);
        const axisYScale = d3.scale.linear()
          .range([this.graphHeight - this.graphHeightOffset, 0]);

        axisXScale.domain(d3.extent(this.timeSeries[0].values, d => d.time));
        axisYScale.domain([0, d3.max(this.timeSeries[0].values.map(d => d.value))]);

        const xAxis = d3.svg.axis()
          .scale(axisXScale)
          .ticks(measurements.xTicks)
          .tickFormat(timeScaleFormat)
          .orient('bottom');

        const yAxis = d3.svg.axis()
          .scale(axisYScale)
          .ticks(measurements.yTicks)
          .orient('left');

        d3.select(this.$refs.baseSvg).select('.x-axis').call(xAxis);

        const width = this.graphWidth;
        d3.select(this.$refs.baseSvg).select('.y-axis').call(yAxis)
          .selectAll('.tick')
          .each(function createTickLines(d, i) {
            if (i > 0) {
              d3.select(this).select('line')
                .attr('x2', width)
                .attr('class', 'axis-tick');
            } // Avoid adding the class to the first tick, to prevent coloring
          }); // This will select all of the ticks once they're rendered
      },
    },

    watch: {
      updateAspectRatio() {
        if (this.updateAspectRatio) {
          this.graphHeight = 450;
          this.graphWidth = 600;
          this.measurements = measurements.large;
          this.draw();
          eventHub.$emit('toggleAspectRatio');
        }
      },
    },

    mounted() {
      this.draw();
    },
  };
</script>
<template>
  <div
    :class="classType">
    <h5
      class="text-center graph-title">
        {{graphData.title}}
    </h5>
    <div
      class="prometheus-svg-container"
      :style="paddingBottomRootSvg">
      <svg
        :viewBox="outterViewBox"
        ref="baseSvg">
        <g
          class="x-axis"
          :transform="axisTransform">
        </g>
        <g
          class="y-axis"
          transform="translate(70, 20)">
        </g>
        <graph-legend
          :graph-width="graphWidth"
          :graph-height="graphHeight"
          :margin="margin"
          :measurements="measurements"
          :area-color-rgb="areaColorRgb"
          :legend-title="legendTitle"
          :y-axis-label="yAxisLabel"
          :time-series="timeSeries"
          :unit-of-display="unitOfDisplay"
          :current-data-index="currentDataIndex"
        />
        <svg
          class="graph-data"
          :viewBox="innerViewBox"
          ref="graphData">
            <monitoring-paths
              v-for="(path, index) in timeSeries"
              :key="index"
              :generated-line-path="path.linePath"
              :generated-area-path="path.areaPath"
              :line-color="lineColorRgb"
              :area-color="areaColorRgb"
            />
            <rect
              class="prometheus-graph-overlay"
              :width="(graphWidth - 70)"
              :height="(graphHeight - 100)"
              transform="translate(-5, 20)"
              ref="graphOverlay"
              @mousemove="handleMouseOverGraph($event)">
            </rect>
            <monitoring-deployment
              :show-deploy-info="showDeployInfo"
              :deployment-data="reducedDeploymentData"
              :graph-height="graphHeight"
              :graph-height-offset="graphHeightOffset"
            />
            <graph-flag
              v-if="showFlag"
              :current-x-coordinate="currentXCoordinate"
              :current-data="currentData"
              :current-flag-position="currentFlagPosition"
              :graph-height="graphHeight"
              :graph-height-offset="graphHeightOffset"
            />
            <rect
              class="prometheus-graph-overlay"
              :width="(graphWidth - 70)"
              :height="(graphHeight - 100)"
              transform="translate(-5, 20)"
              ref="graphOverlay"
              @mousemove="handleMouseOverGraph($event)">
            </rect>
        </svg>
      </svg>
    </div>
  </div>
</template>

<script>
  import d3 from 'd3';
  import GraphLegend from './graph/legend.vue';
  import GraphFlag from './graph/flag.vue';
  import GraphDeployment from './graph/deployment.vue';
  import monitoringPaths from './monitoring_paths.vue';
  import MonitoringMixin from '../mixins/monitoring_mixins';
  import eventHub from '../event_hub';
  import measurements from '../utils/measurements';
  import { timeScaleFormat } from '../utils/date_time_formatters';
  import createTimeSeries from '../utils/multiple_time_series';
  import bp from '../../breakpoints';

  const bisectDate = d3.bisector(d => d.time).left;

  export default {
    props: {
      graphData: {
        type: Object,
        required: true,
      },
      classType: {
        type: String,
        required: true,
      },
      updateAspectRatio: {
        type: Boolean,
        required: true,
      },
      deploymentData: {
        type: Array,
        required: true,
      },
    },

    mixins: [MonitoringMixin],

    data() {
      return {
        baseGraphHeight: 450,
        baseGraphWidth: 600,
        graphHeight: 450,
        graphWidth: 600,
        graphHeightOffset: 120,
        margin: {},
        unitOfDisplay: '',
        areaColorRgb: '#8fbce8',
        lineColorRgb: '#1f78d1',
        yAxisLabel: '',
        legendTitle: '',
        reducedDeploymentData: [],
        measurements: measurements.large,
        currentData: {
          time: new Date(),
          value: 0,
        },
        currentDataIndex: 0,
        currentXCoordinate: 0,
        currentFlagPosition: 0,
        showFlag: false,
        showDeployInfo: true,
        timeSeries: [],
      };
    },

    components: {
      GraphLegend,
      GraphFlag,
      GraphDeployment,
      monitoringPaths,
    },

    computed: {
      outterViewBox() {
        return `0 0 ${this.baseGraphWidth} ${this.baseGraphHeight}`;
      },

      innerViewBox() {
        if ((this.baseGraphWidth - 150) > 0) {
          return `0 0 ${this.baseGraphWidth - 150} ${this.baseGraphHeight}`;
        }
        return '0 0 0 0';
      },

      axisTransform() {
        return `translate(70, ${this.graphHeight - 100})`;
      },

      paddingBottomRootSvg() {
        return {
          paddingBottom: `${(Math.ceil(this.baseGraphHeight * 100) / this.baseGraphWidth) || 0}%`,
        };
      },
    },

    methods: {
      draw() {
        const breakpointSize = bp.getBreakpointSize();
        const query = this.graphData.queries[0];
        this.margin = measurements.large.margin;
        if (breakpointSize === 'xs' || breakpointSize === 'sm') {
          this.graphHeight = 300;
          this.margin = measurements.small.margin;
          this.measurements = measurements.small;
        }
        this.unitOfDisplay = query.unit || '';
        this.yAxisLabel = this.graphData.y_label || 'Values';
        this.legendTitle = query.label || 'Average';
        this.graphWidth = this.$refs.baseSvg.clientWidth -
                     this.margin.left - this.margin.right;
        this.graphHeight = this.graphHeight - this.margin.top - this.margin.bottom;
        this.baseGraphHeight = this.graphHeight;
        this.baseGraphWidth = this.graphWidth;
        this.renderAxesPaths();
        this.formatDeployments();
      },

      handleMouseOverGraph(e) {
        let point = this.$refs.graphData.createSVGPoint();
        point.x = e.clientX;
        point.y = e.clientY;
        point = point.matrixTransform(this.$refs.graphData.getScreenCTM().inverse());
        point.x = point.x += 7;
        const firstTimeSeries = this.timeSeries[0];
        const timeValueOverlay = firstTimeSeries.timeSeriesScaleX.invert(point.x);
        const overlayIndex = bisectDate(firstTimeSeries.values, timeValueOverlay, 1);
        const d0 = firstTimeSeries.values[overlayIndex - 1];
        const d1 = firstTimeSeries.values[overlayIndex];
        if (d0 === undefined || d1 === undefined) return;
        const evalTime = timeValueOverlay - d0[0] > d1[0] - timeValueOverlay;
        this.currentData = evalTime ? d1 : d0;
        this.currentDataIndex = evalTime ? overlayIndex : (overlayIndex - 1);
        this.currentXCoordinate = Math.floor(firstTimeSeries.timeSeriesScaleX(this.currentData.time));
        const currentDeployXPos = this.mouseOverDeployInfo(point.x);

        if (this.currentXCoordinate > (this.graphWidth - 200)) {
          this.currentFlagPosition = this.currentXCoordinate - 103;
        } else {
          this.currentFlagPosition = this.currentXCoordinate;
        }

        if (currentDeployXPos) {
          this.showFlag = false;
        } else {
          this.showFlag = true;
        }
      },

      renderAxesPaths() {
        this.timeSeries = createTimeSeries(this.columnData.queries[0].result,
        this.graphWidth,
        this.graphHeight,
        this.graphHeightOffset);

        if (this.timeSeries.length > 4) {
          this.baseGraphHeight = this.baseGraphHeight += (this.timeSeries.length - 4) * 20;
        }

        const axisXScale = d3.time.scale()
          .range([0, this.graphWidth]);
        const axisYScale = d3.scale.linear()
          .range([this.graphHeight - this.graphHeightOffset, 0]);

        axisXScale.domain(d3.extent(this.timeSeries[0].values, d => d.time));
        axisYScale.domain([0, d3.max(this.timeSeries[0].values.map(d => d.value))]);

        const xAxis = d3.svg.axis()
          .scale(axisXScale)
          .ticks(measurements.xTicks)
          .tickFormat(timeScaleFormat)
          .orient('bottom');

        const yAxis = d3.svg.axis()
          .scale(axisYScale)
          .ticks(measurements.yTicks)
          .orient('left');

        d3.select(this.$refs.baseSvg).select('.x-axis').call(xAxis);

        const width = this.graphWidth;
        d3.select(this.$refs.baseSvg).select('.y-axis').call(yAxis)
          .selectAll('.tick')
          .each(function createTickLines(d, i) {
            if (i > 0) {
              d3.select(this).select('line')
                .attr('x2', width)
                .attr('class', 'axis-tick');
            } // Avoid adding the class to the first tick, to prevent coloring
          }); // This will select all of the ticks once they're rendered
      },
    },

    watch: {
      updateAspectRatio() {
        if (this.updateAspectRatio) {
          this.graphHeight = 450;
          this.graphWidth = 600;
          this.measurements = measurements.large;
          this.draw();
          eventHub.$emit('toggleAspectRatio');
        }
      },
    },

    mounted() {
      this.draw();
    },
  };
</script>
<template>
  <div
    :class="classType">
    <h5
      class="text-center graph-title">
        {{graphData.title}}
    </h5>
    <div
      class="prometheus-svg-container"
      :style="paddingBottomRootSvg">
      <svg
        :viewBox="outterViewBox"
        ref="baseSvg">
        <g
          class="x-axis"
          :transform="axisTransform">
        </g>
        <g
          class="y-axis"
          transform="translate(70, 20)">
        </g>
        <graph-legend
          :graph-width="graphWidth"
          :graph-height="graphHeight"
          :margin="margin"
          :measurements="measurements"
          :area-color-rgb="areaColorRgb"
          :legend-title="legendTitle"
          :y-axis-label="yAxisLabel"
          :time-series="timeSeries"
          :unit-of-display="unitOfDisplay"
          :current-data-index="currentDataIndex"
        />
        <svg
          class="graph-data"
          :viewBox="innerViewBox"
          ref="graphData">
            <monitoring-paths
              v-for="(path, index) in timeSeries"
              :key="index"
              :generated-line-path="path.linePath"
              :generated-area-path="path.areaPath"
              :line-color="lineColorRgb"
              :area-color="areaColorRgb"
            />
            <rect
              class="prometheus-graph-overlay"
              :width="(graphWidth - 70)"
              :height="(graphHeight - 100)"
              transform="translate(-5, 20)"
              ref="graphOverlay"
              @mousemove="handleMouseOverGraph($event)">
            </rect>
            <monitoring-deployment
              :show-deploy-info="showDeployInfo"
              :deployment-data="reducedDeploymentData"
              :graph-height="graphHeight"
              :graph-height-offset="graphHeightOffset"
            />
            <graph-flag
              v-if="showFlag"
              :current-x-coordinate="currentXCoordinate"
              :current-data="currentData"
              :current-flag-position="currentFlagPosition"
              :graph-height="graphHeight"
              :graph-height-offset="graphHeightOffset"
            />
            <rect
              class="prometheus-graph-overlay"
              :width="(graphWidth - 70)"
              :height="(graphHeight - 100)"
              transform="translate(-5, 20)"
              ref="graphOverlay"
              @mousemove="handleMouseOverGraph($event)">
            </rect>
        </svg>
      </svg>
    </div>
  </div>
</template>


actions-bar component implemented

actions-bar component implemented

<template>

        Quick Actions

            <button class="btn btn-lg btn-default" v-on:click="performAction(button.action)">

              {{ button.message }}
            </button>

</template>

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


1. Refactor detail view to allow multiple information chunks 2. Add 3350 mira vista circle details 3. Make images conditional

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Slow down marquee elements by 50%

Slow down marquee elements by 50%

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


Add Records component

Add Records component

<template>

      Θέμα
      <textarea class="form-control" rows="2" id="record_subject" name="record_subject" placeholder="Το θέμα του εγγράφου"></textarea>

      Αριθμός Πρακτικού
      <input class="form-control" type="text" id="record_number" name="record_number"></input>

</template>

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


Test router-link for navbar

Test router-link for navbar

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Fix fetching cocktail from going from one to another

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


[Component] update admin_cd/PostList.vue

<template>
  <div>
    <el-tabs v-model="editableTabsValue2" type="card" closable @tab-remove="removeTab">
      <el-tab-pane label="excel" name="first">
        <cd_post_list></cd_post_list>
      </el-tab-pane>
      <el-tab-pane label="adw" name="fasd">
        <cd_post_list></cd_post_list>
      </el-tab-pane>
    </el-tabs>
  </div>
</template>
<script>
  import PostList from '../../components/admin_cd/PostList.vue'
  export default {
    components: {
      'cd_post_list': PostList
    },
    data () {
      return {
        editableTabsValue2: 'first',
        editableTabs2: [{
          title: 'Tab 1',
          name: '1',
          content: ''
        }, {
          title: 'Tab 2',
          name: '2',
          content: 'Tab 2 content'
        }],
        tabIndex: 2
      }
    },
    methods: {
      addTab (targetName) {
        let newTabName = ++this.tabIndex + ''
        this.editableTabs2.push({
          title: 'New Tab',
          name: newTabName,
          content: 'New Tab content'
        })
        this.editableTabsValue2 = newTabName
      },
      removeTab (targetName) {
        let tabs = this.editableTabs2
        let activeName = this.editableTabsValue2
        if (activeName === targetName) {
          tabs.forEach((tab, index) => {
            if (tab.name === targetName) {
              let nextTab = tabs[index + 1] || tabs[index - 1]
              if (nextTab) {
                activeName = nextTab.name
              }
            }
          })
        }
        this.editableTabsValue2 = activeName
        this.editableTabs2 = tabs.filter(tab => tab.name !== targetName)
      }
    }
  }
</script>
<style>
</style>

<template>
  <div>
    <cd_post_list></cd_post_list>
  </div>
</template>
<script>
  import PostList from '../../components/admin_cd/PostList.vue'
  export default {
    components: {
      'cd_post_list': PostList
    },
    data () {
      return {}
    }
  }
</script>
<style>
</style>


Fix: No padding between `Active` badge and task description (#84)

No padding between `Active` badge and task description (#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/'


Small update

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


Adds heading

Adds heading

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Added AdviceRenderer

Added AdviceRenderer

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


编辑 弹出编辑表单

编辑 弹出编辑表单

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


#539 Commit: bug fix

#539 Commit: bug fix

<template>

Account Cookie is {{this.message}}

        <mu-table :height="height">
            <mu-thead>
                <mu-tr>
                    <mu-th>backtest history</mu-th>
                </mu-tr>
            </mu-thead>
            <template v-for="item in items">
                <mu-tbody>
                    <mu-tr>
                        <mu-td>{{item[0]}}</mu-td>
                        <mu-td>{{item[1]}}</mu-td>
                        <mu-td>{{item[2]}}</mu-td>
                        <mu-td>{{item[3]}}</mu-td>
                        <mu-td>{{item[4]}}</mu-td>

                    </mu-tr>
                </mu-tbody>
            </template>
        </mu-table>

</template>

<template>

Account Cookie is {{this.message}}

        <mu-table :height="height">
            <mu-thead>
                <mu-tr>
                    <mu-th>backtest history</mu-th>
                </mu-tr>
            </mu-thead>
            <template v-for="item in items">
                <mu-tbody>
                    <mu-tr>
                        <mu-td>{{item['history'][0]}}</mu-td>
                        <mu-td>{{item['history'][1]}}</mu-td>
                        <mu-td>{{item['history'][2]}}</mu-td>
                        <mu-td>{{item['history'][3]}}</mu-td>
                        <mu-td>{{item['history'][4]}}</mu-td>
                        <mu-td>{{item['assest_history']}}</mu-td>
                    </mu-tr>
                </mu-tbody>
            </template>
        </mu-table>

</template>


Updates per MR feedback - Adjusts il8n implementation - Removes unnecessary type check - Adjusts to use Vue shorthand directives - Adjusts class names

<template>

{{ __('Trigger') }}

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

    <template v-if="hasVariables">

         {{ __('Variables:') }}

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

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

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

    </template>

</template>

<template>

{{ __('Trigger') }}

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

    <template v-if="hasVariables">

         {{ __('Variables:') }}

        <gl-button
          v-if="hasValues"
          type="button"
          class="btn btn-default group js-reveal-variables"
          @click="toggleValues"
        >
          {{ __(getToggleButtonText) }}
        </gl-button>

          <td
            v-bind:key="`${variable.key}-variable`"
            class="js-build-variable trigger-build-variable"
          >
            {{ variable.key }}

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

    </template>

</template>


fixed link picker

fixed link picker

<template>

        <v-modal v-ref="modal" closed="{{ close }}">
            <form class="uk-form uk-form-stacked" v-on="submit: update">

{{ 'Add Link' | trans }}

                    {{ 'Title' | trans }}

                        <input id="form-link-title" class="uk-width-1-1" type="text" v-model="link.txt">

                    {{ 'Url' | trans }}

                        <input-link id="form-link-url" class="uk-width-1-1" link="{{@ link.link}}"></input-link>

                    <button class="uk-button uk-button-link uk-modal-close" type="button">{{ 'Cancel' | trans }}</button>
                    <button class="uk-button uk-button-link" type="submit">{{ 'Update' | trans }}</button>

            </form>
        </v-modal>

</template>

<template>

        <v-modal v-ref="modal" closed="{{ close }}">
            <form class="uk-form uk-form-stacked" v-on="submit: update">

{{ 'Add Link' | trans }}

                    {{ 'Title' | trans }}

                        <input id="form-link-title" class="uk-width-1-1" type="text" v-model="link.txt">

                    {{ 'Url' | trans }}

                        <input-link id="form-link-url" class="uk-width-1-1" url="{{@ link.link}}"></input-link>

                    <button class="uk-button uk-button-link uk-modal-close" type="button">{{ 'Cancel' | trans }}</button>
                    <button class="uk-button uk-button-link" type="submit">{{ 'Update' | trans }}</button>

            </form>
        </v-modal>

</template>


chore: better judgement

chore: better judgement

<template>

        <Loading v-show="loading"></Loading>

                             {{$t('account.basic.title')}}

                            {{$t('account.basic.more')}}

                            {{$t('account.basic.more')}}

                                        {{$t('account.basic.account_name')}}
                                        {{account_info.name}}

                                        {{$t('account.basic.account_id')}}
                                        {{account_info.id}}

                                        {{$t('account.basic.referrer_name')}}

                                            <router-link :to="{path:'/account/'+account_info.referrer_name}">
                                                {{account_info.referrer_name}}({{account_info.referrer}})
                                            </router-link>

                                        {{$t('account.basic.membership')}}

                             {{$t('account.permissions.title')}}

                                         {{$t('account.permissions.active')}}

                                            {{$t('account.permissions.threshold')}}({{account_info.active.weight_threshold}})

                                        {{auth[0]}}
                                        {{auth[1]}}

                                         {{$t('account.permissions.owner')}}

                                            {{$t('account.permissions.threshold')}}({{account_info.owner.weight_threshold}})

                                        {{auth[0]}}
                                        {{auth[1]}}

                             {{$t('account.balances.title')}}

                                    {{$t('account.balances.asset')}}

{{$t('account.balances.balance')}}

                                    {{asset.symbol}}
                                    {{asset.amount}}

0" key="locked">
                                    {{$t('account.locked_balance')}}

                                        {{sumLockedBalance(account_info.locked_balances)/100000|number(2)}}

0" key="pledge">
                                    {{$t('account.pledge_balance')}}

                                        {{account_info.pledge_balances[0].amount.amount/100000|number(2)}}

                                            {{$t('account.balances.empty')}}

                                <svg v-if="!(contractInfo&&contractInfo.logo)" class="portrait" id="icon-contract"
                                     viewBox="0 0 1024 1024" width="100%" height="100%">
                                    <path d="M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m38.115556 284.444444l-169.528889 455.111112h93.297777l169.528889-455.111112H550.115556z m108.771555 134.257778L796.444444 512l-163.271111 110.762667 50.176 34.019555L853.333333 541.809778V482.986667l-176.184889-115.825778-18.261333 51.484444zM170.666667 482.190222v58.766222l176.184889 115.825778 18.261333-51.484444L227.555556 512l163.271111-110.762667-50.232889-34.019555L170.666667 482.190222z"
                                          fill="#34CB49"></path>
                                </svg>

                                        {{account_info.name}}

                                        {{contractInfo.title[_i18n.locale]}}

                                        {{$t('account.basic.pending_claim')}}

                                 {{item.name}}

                                    Actions

                                    ABI Raw

                                    Tables

                                                Payable
                                                Define
                                                Operation

                                                {{action.payable}}
                                                {{getActionDefine(action.name)}}

                                                    call

{{JSON.stringify(account_info.abi,null,'  ')}}

 {{table.name}}

                                                    type
                                                    field

                                                    {{field.type}}
                                                    {{field.name}}

                                    WAST

                                    WASM

{{this.code.wast}}

                                        {{account_info.code}}

                                 {{$t('account.contract.database.title')}}
                                <select v-model="current_table.name">
                                    <option v-for="table in account_info.abi.tables" :value="table.name"
                                            :key="table.name">
                                        {{table.name}}
                                    </option>
                                </select>

                                        {{h}}

0" v-for="row in current_table.data">
                                        {{v}}

                                            {{$t('account.contract.database.no_record')}}

                             {{$t('index.transactions.title')}}
                            {{$t('account.basic.more')}}

                            <Loading v-show="history_loading"></Loading>

                                        {{$t('index.transactions.type')}}
                                        {{$t('index.transactions.content')}}
                                        {{$t('index.transactions.time')}}

                                    <history-op :latestTransactions="latestTransactions" parent="Account"></history-op>

{{$t('account.title')}}

{{$t('account.empty')}}

        <modal-history :account="$route.params.id_or_name"></modal-history>
        <modal-call-contract ref="modalCall"
                             :contract="contract.name"
                             :method="contract.method"
                             :payable="contract.payable"
                             :fields="contract.params">
        </modal-call-contract>

</template>

<template>

        <Loading v-show="loading"></Loading>

                             {{$t('account.basic.title')}}

                            {{$t('account.basic.more')}}

                            {{$t('account.basic.more')}}

                                        {{$t('account.basic.account_name')}}
                                        {{account_info.name}}

                                        {{$t('account.basic.account_id')}}
                                        {{account_info.id}}

                                        {{$t('account.basic.referrer_name')}}

                                            <router-link :to="{path:'/account/'+account_info.referrer_name}">
                                                {{account_info.referrer_name}}({{account_info.referrer}})
                                            </router-link>

                                        {{$t('account.basic.membership')}}

                             {{$t('account.permissions.title')}}

                                         {{$t('account.permissions.active')}}

                                            {{$t('account.permissions.threshold')}}({{account_info.active.weight_threshold}})

                                        {{auth[0]}}
                                        {{auth[1]}}

                                         {{$t('account.permissions.owner')}}

                                            {{$t('account.permissions.threshold')}}({{account_info.owner.weight_threshold}})

                                        {{auth[0]}}
                                        {{auth[1]}}

                             {{$t('account.balances.title')}}

                                    {{$t('account.balances.asset')}}

{{$t('account.balances.balance')}}

                                    {{asset.symbol}}
                                    {{asset.amount}}

0" key="locked">
                                    {{$t('account.locked_balance')}}

                                        {{sumLockedBalance(account_info.locked_balances)/100000|number(2)}}

0" key="pledge">
                                    {{$t('account.pledge_balance')}}

                                        {{account_info.pledge_balances[0].amount.amount/100000|number(2)}}

                                            {{$t('account.balances.empty')}}

                                <svg v-if="!contractInfo.logo" class="portrait" id="icon-contract"
                                     viewBox="0 0 1024 1024" width="100%" height="100%">
                                    <path d="M512 0a512 512 0 1 1 0 1024A512 512 0 0 1 512 0z m38.115556 284.444444l-169.528889 455.111112h93.297777l169.528889-455.111112H550.115556z m108.771555 134.257778L796.444444 512l-163.271111 110.762667 50.176 34.019555L853.333333 541.809778V482.986667l-176.184889-115.825778-18.261333 51.484444zM170.666667 482.190222v58.766222l176.184889 115.825778 18.261333-51.484444L227.555556 512l163.271111-110.762667-50.232889-34.019555L170.666667 482.190222z"
                                          fill="#34CB49"></path>
                                </svg>

                                        {{account_info.name}}

                                        {{contractInfo.title[_i18n.locale]}}

                                        {{$t('account.basic.pending_claim')}}

                                 {{item.name}}

                                    Actions

                                    ABI Raw

                                    Tables

                                                Payable
                                                Define
                                                Operation

                                                {{action.payable}}
                                                {{getActionDefine(action.name)}}

                                                    call

{{JSON.stringify(account_info.abi,null,'  ')}}

 {{table.name}}

                                                    type
                                                    field

                                                    {{field.type}}
                                                    {{field.name}}

                                    WAST

                                    WASM

{{this.code.wast}}

                                        {{account_info.code}}

                                 {{$t('account.contract.database.title')}}
                                <select v-model="current_table.name">
                                    <option v-for="table in account_info.abi.tables" :value="table.name"
                                            :key="table.name">
                                        {{table.name}}
                                    </option>
                                </select>

                                        {{h}}

0" v-for="row in current_table.data">
                                        {{v}}

                                            {{$t('account.contract.database.no_record')}}

                             {{$t('index.transactions.title')}}
                            {{$t('account.basic.more')}}

                            <Loading v-show="history_loading"></Loading>

                                        {{$t('index.transactions.type')}}
                                        {{$t('index.transactions.content')}}
                                        {{$t('index.transactions.time')}}

                                    <history-op :latestTransactions="latestTransactions" parent="Account"></history-op>

{{$t('account.title')}}

{{$t('account.empty')}}

        <modal-history :account="$route.params.id_or_name"></modal-history>
        <modal-call-contract ref="modalCall"
                             :contract="contract.name"
                             :method="contract.method"
                             :payable="contract.payable"
                             :fields="contract.params">
        </modal-call-contract>

</template>


Change loading animation once more

Change loading animation once more

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


fix exercise not loading when totalattempts is 0

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Add Expense component

Add Expense component

<template>

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

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

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

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

      <currencies></currencies>

</template>

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


import fix in app

import fix in app

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


Updated ajax error message with returned errors

<template>

    <note-signed-out-widget v-if="!isLoggedIn" />
    <discussion-locked-widget v-else-if="!canCreateNote" :issuable-type="issuableTypeTitle" />

      <timeline-entry-item class="note-form">

          <user-avatar-link
            v-if="author"
            :link-href="author.path"
            :img-src="author.avatar_url"
            :img-alt="author.name"
            :img-size="40"
          />

          <form ref="commentForm" class="new-note common-note-form gfm-form js-main-target-form">

            <issue-warning
              v-if="hasWarning(getNoteableData)"
              :is-locked="isLocked(getNoteableData)"
              :is-confidential="isConfidential(getNoteableData)"
            />

            <markdown-field
              ref="markdownField"
              :markdown-preview-path="markdownPreviewPath"
              :markdown-docs-path="markdownDocsPath"
              :quick-actions-docs-path="quickActionsDocsPath"
              :markdown-version="markdownVersion"
              :add-spacing-classes="false"
            >
              <textarea
                id="note-body"
                ref="textarea"
                slot="textarea"
                v-model="note"
                :disabled="isSubmitting"
                name="note[note]"
                class="note-textarea js-vue-comment-form js-note-text
js-gfm-input js-autosize markdown-area js-vue-textarea qa-comment-input"
                data-supports-quick-actions="true"
                aria-label="Description"
                placeholder="Write a comment or drag your files here…"
                @keydown.up="editCurrentUserLastNote();"
                @keydown.meta.enter="handleSave();"
                @keydown.ctrl.enter="handleSave();"
              >
              </textarea>
            </markdown-field>

                <button
                  :disabled="isSubmitButtonDisabled"
                  class="btn btn-create comment-btn js-comment-button js-comment-submit-button
                    qa-comment-button"
                  type="submit"
                  @click.prevent="handleSave();"
                >
                  {{ __(commentButtonTitle) }}
                </button>
                <button
                  :disabled="isSubmitButtonDisabled"
                  name="button"
                  type="button"
                  class="btn comment-btn note-type-toggle js-note-new-discussion dropdown-toggle qa-note-dropdown"
                  data-display="static"
                  data-toggle="dropdown"
                  aria-label="Open comment type dropdown"
                >

                </button>

                    <button
                      type="button"
                      class="btn btn-transparent"
                      @click.prevent="setNoteType('comment');"
                    >

                        Comment

Add a general comment to this {{ noteableDisplayName }}.

                    </button>

                    <button
                      type="button"
                      class="btn btn-transparent qa-discussion-option"
                      @click.prevent="setNoteType('discussion');"
                    >

                        Start discussion

{{ startDiscussionDescription }}

                    </button>

              <loading-button
                v-if="canUpdateIssue"
                :loading="isToggleStateButtonLoading"
                :container-class="[
                  actionButtonClassNames,
                  'btn btn-comment btn-comment-and-close js-action-button',
                ]"
                :disabled="isToggleStateButtonLoading || isSubmitting"
                :label="issueActionButtonTitle"
                @click="handleSave(true);"
              />

              <button
                v-if="note.length"
                type="button"
                class="btn btn-cancel js-note-discard"
                @click="discard"
              >
                Discard draft
              </button>

          </form>

      </timeline-entry-item>

</template>


Fix https://voten.co/c/votendev/default-to-links

<template>
	<el-dialog title="New Submission"
	           :visible="visible"
	           :width="isMobile ? '99%' : '600px'"
	           @close="close"
	           append-to-body
	           class="user-select submit-form">

		<el-form label-position="top"
		         label-width="10px">

			<el-form-item label="Title:">
				<el-input placeholder="Title ..."
				          class="input-with-select"
				          name="title"
				          :maxlength="150"
				          :minlength="7"
				          v-model="title">
					<el-button round
					           slot="append"
					           type="primary"
					           v-if="submitURL && submissionType === 'link'"
					           @click="getTitle(submitURL)"
					           :loading="loadingTitle">
						Suggest
					</el-button>
				</el-input>

				<el-alert v-for="e in errors.title"
				          :title="e"
				          type="error"
				          :key="e"></el-alert>
			</el-form-item>

			<el-form-item v-if="submissionType === 'text'"
			              label="Text(optional):">
				<el-input type="textarea"
				          placeholder="Text(optional)..."
				          name="text"
				          resize="none"
				          :maxlength="15000"
				          :autosize="{ minRows: 4, maxRows: 10}"
				          v-model="text">
				</el-input>

				<el-alert v-for="e in errors.text"
				          :title="e"
				          type="error"
				          :key="e"></el-alert>

					<el-button type="text"
					           size="mini"
					           @click="$eventHub.$emit('markdown-guide')">
						Formatting Guide
					</el-button>

					<el-button size="mini"
					           @click="preview = !preview"
					           v-show="text"
					           type="text"
					           :icon="preview ? 'el-icon-close' : 'el-icon-view'">
						Preview
					</el-button>

					<markdown :text="text.trim()"></markdown>

			</el-form-item>

			<el-form-item v-if="submissionType === 'link'"
			              label="URL:">
				<el-input placeholder="URL ..."
				          name="url"
				          v-model="submitURL"></el-input>
				<el-alert v-for="e in errors.url"
				          :title="e"
				          type="error"
				          :key="e"></el-alert>
			</el-form-item>

			<el-form-item v-if="submissionType === 'img'"
			              label="Photo(s):">
				<el-upload class="upload-demo"
				           drag
				           :limit="20"
				           action="/api/photos"
				           :file-list="photos"
				           :on-preview="photoPreview"
				           :on-remove="removePhoto"
				           :on-success="successfulPhotoUpload"
				           :on-exceed="exceededPhotoFileCount"
				           :on-error="failedPhotoUpload"
				           :before-upload="beforePhotoUploadCheckings"
				           with-credentials
				           accept=" .jpg, .jpeg, .png"
				           :headers="{ 'X-CSRF-TOKEN': csrf}">

Drop photo here or
						click to upload

Up to {{ photosNumberLimit }} jpg/png files with a size less than {{ photosSizeLimit }}mb

				</el-upload>

				<el-dialog :visible.sync="previewPhotoModal"
				           :title="previewPhotoFileName"
				           append-to-body>

				</el-dialog>
			</el-form-item>

			<el-form-item label="Channel:">
				<el-select v-model="selectedCat"
				           filterable
				           remote
				           placeholder="#channel..."
				           :remote-method="getSuggestedChannels"
				           loading-text="Loading..."
				           :loading="loadingChannels">
					<el-option v-for="item in suggestedCats"
					           :key="item"
					           :label="item"
					           :value="item">
					</el-option>
				</el-select>
				<el-alert v-for="e in errors.channel_name"
				          :title="e"
				          type="error"
				          :key="e"></el-alert>
			</el-form-item>

			<el-form-item>
				<el-checkbox v-model="sfw">
					Safe for work
				</el-checkbox>
			</el-form-item>

					<el-tooltip content="Photo(s)"
					            placement="top"
					            transition="false"
					            :open-delay="500">

					</el-tooltip>

					<el-tooltip content="Link"
					            placement="top"
					            transition="false"
					            :open-delay="500">

					</el-tooltip>

					<el-tooltip content="Text"
					            placement="top"
					            transition="false"
					            :open-delay="500">

					</el-tooltip>

				<el-button round
				           type="success"
				           size="mini"
				           @click="submit"
				           :disabled="!goodToGo"
				           :loading="loading">
					Submit
				</el-button>

		</el-form>
	</el-dialog>
</template>


Fix #11 breadcrumb root

Fix #11 breadcrumb root

<template>

        {{ route.tab === 'admin' ? 'Administrators' : route.tab ? 'Gebruikers' : 'Diensten' }}

         Gebruikers
         Diensten

-1" :class="{active:route.page=='service'}">
        {{ srv.label }}

1&&route.channel>-1" :class="{active:route.page=='channel'}">
        {{ $parent.routeChannel.label }}

2&&route.version>-1" :class="{active:route.page=='version'}">
        {{ $parent.routeVersion.label }}

3&&route.calendar>-1" :class="{active:route.page=='calendar'}">
        {{ $parent.routeCalendar.label }}

        {{ route.tab2 && isOwner ? 'Gebruikers' : 'Kanalen' }}

        {{ usr.name }}

</template>

<template>

        Overzicht

        {{ route.tab === 'admin' ? 'Administrators' : route.tab ? 'Gebruikers' : 'Diensten' }}

         Gebruikers
         Diensten

-1" :class="{active:route.page=='service'}">
        {{ srv.label }}

1&&route.channel>-1" :class="{active:route.page=='channel'}">
        {{ $parent.routeChannel.label }}

2&&route.version>-1" :class="{active:route.page=='version'}">
        {{ $parent.routeVersion.label }}

3&&route.calendar>-1" :class="{active:route.page=='calendar'}">
        {{ $parent.routeCalendar.label }}

        {{ route.tab2 && isOwner ? 'Gebruikers' : 'Kanalen' }}

        {{ usr.name }}

</template>


Messed with nav icon animation

Messed with nav icon animation

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


Support poster images for video banners

Support poster images for video banners


feat(search) : display results number only if searchQuery.length>=2

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


Introduce and use no-wrap

Introduce and use no-wrap


Post type menu panels pagination error

Post type menu panels pagination 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/manaferra/library.git/'


Fix newsletter in safari

Fix newsletter in safari


finish create order

finish create order

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


pause snackbar timeout on hover (#434)

pause snackbar timeout on hover (#434)

#321

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Change checkbox filters width

Change checkbox filters width


refresh list while deleting article

refresh list while deleting article

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Unified search UI

Unified search UI

Signed-off-by: John Molakvoæ (skjnldsv) <0835dbafb601d1e4088d26d0286d7121ba48453b@protonmail.com>

<template>
	<HeaderMenu id="unified-search"
		class="unified-search"
		:open.sync="open"
		@open="onOpen"
		@close="onClose">

		<template #trigger>

		</template>

			<input ref="input"
				v-model="query"
				class="unified-search__input"
				type="search"
				:placeholder="t('core', 'Search for {types} …', { types: typesNames.join(', ') })"
				@input="onInputDebounced"
				@keypress.enter.prevent.stop="onInputEnter">

		<EmptyContent v-if="isLoading" icon="icon-loading">
			{{ t('core', 'Searching …') }}
		</EmptyContent>

		<template v-else-if="!hasResults">
			<EmptyContent v-if="isValidQuery && isDoneSearching" icon="icon-search">
				{{ t('core', 'No results for {query}', {query}) }}
			</EmptyContent>

			<EmptyContent v-else-if="!isLoading || isShortQuery" icon="icon-search">
				{{ t('core', 'Start typing to search') }}
				<template v-if="isShortQuery" #desc>
					{{ n('core',
						'Please enter {minSearchLength} character or more to search',
						'Please enter {minSearchLength} characters  or more to search',
						minSearchLength,
						{minSearchLength}) }}
				</template>
			</EmptyContent>
		</template>

		<template v-else>
			<ul v-for="(list, type, typesIndex) in results"
				:key="type"
				class="unified-search__results"
				:class="`unified-search__results-${type}`"
				:aria-label="typesMap[type]">

					<SearchResult v-bind="result"
						:query="query"
						:focused="focused === 0 && typesIndex === 0 && index === 0"
						@focus="setFocusedIndex" />

					<SearchResult v-if="!reached[type]"
						class="unified-search__result-more"
						:title="loading[type]
							? t('core', 'Loading more results …')
							: t('core', 'Load more results')"
						:icon-class="loading[type] ? 'icon-loading-small' : ''"
						@click.prevent="loadMore(type)"
						@focus="setFocusedIndex" />

		</template>
	</HeaderMenu>
</template>

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


Fix wishlist content padding on mobile

Fix wishlist content padding on mobile

Fix wishlist content padding on mobile view when list is empty

<template>

        close

Your wishlist is empty.

          Don't hesitate and
          <router-link to="/">browse our catalog</router-link>
          to find something beatufiul for you!

Wishlist

          <product v-for="product in items" :key="product.id" :product="product" />

</template>


Add application grid specific pagination-info


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


reset form column's with in component Setting


Fixed transparent navbar issue

Fixed transparent navbar issue

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


date picker

date picker

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


Add a dialog when extracting in update progress

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


Forgot to commit

Forgot to commit

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


Removed collections storing when first adding a collection.

When a collection is first added, it contains no information and was being stored in an incomplete state.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-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/'


Adding Android to userAgent check fixes https://github.com/learningequality/kolibri/issues/1512 (again)


add prometheus cluster health monitoring empty state

<template>

        {{ s__('ClusterIntegration|Applications') }}

        <application-row
          id="helm"
          :title="applications.helm.title"
          title-link="https://docs.helm.sh/"
          :status="applications.helm.status"
          :status-reason="applications.helm.statusReason"
          :request-status="applications.helm.requestStatus"
          :request-reason="applications.helm.requestReason"
        >

            {{ s__(`ClusterIntegration|Helm streamlines installing
              and managing Kubernetes applications.
              Tiller runs inside of your Kubernetes Cluster,
              and manages releases of your charts.`) }}

        </application-row>
        <application-row
          :id="ingressId"
          :title="applications.ingress.title"
          title-link="https://kubernetes.io/docs/concepts/services-networking/ingress/"
          :status="applications.ingress.status"
          :status-reason="applications.ingress.statusReason"
          :request-status="applications.ingress.requestStatus"
          :request-reason="applications.ingress.requestReason"
        >

              {{ s__(`ClusterIntegration|Ingress gives you a way to route
                requests to services based on the request host or path,
                centralizing a number of services into a single entrypoint.`) }}

            <template v-if="ingressInstalled">

                  {{ s__('ClusterIntegration|Ingress IP Address') }}

                  <input
                    type="text"
                    id="ingress-ip-address"
                    class="form-control js-ip-address"
                    :value="ingressExternalIp"
                    readonly
                  />

                    <clipboard-button
                      :text="ingressExternalIp"
                      :title="s__('ClusterIntegration|Copy Ingress IP Address to clipboard')"
                      css-class="btn btn-default js-clipboard-btn"
                    />

                <input
                  v-else
                  type="text"
                  class="form-control js-ip-address"
                  readonly
                  value="?"
                />

                {{ s__(`ClusterIntegration|The IP address is in
                the process of being assigned. Please check your Kubernetes
                cluster or Quotas on GKE if it takes a long time.`) }}

                  {{ __('More information') }}

                {{ s__(`ClusterIntegration|Point a wildcard DNS to this
                generated IP address in order to access
                your application after it has been deployed.`) }}

                  {{ __('More information') }}

            </template>

        </application-row>
        <application-row
          id="prometheus"
          :title="applications.prometheus.title"
          title-link="https://prometheus.io/docs/introduction/overview/"
          :manage-link="managePrometheusPath"
          :status="applications.prometheus.status"
          :status-reason="applications.prometheus.statusReason"
          :request-status="applications.prometheus.requestStatus"
          :request-reason="applications.prometheus.requestReason"
        >

        </application-row>
        <application-row
          id="runner"
          :title="applications.runner.title"
          title-link="https://docs.gitlab.com/runner/"
          :status="applications.runner.status"
          :status-reason="applications.runner.statusReason"
          :request-status="applications.runner.requestStatus"
          :request-reason="applications.runner.requestReason"
        >

            {{ s__(`ClusterIntegration|GitLab Runner connects to this
              project's repository and executes CI/CD jobs,
              pushing results back and deploying,
              applications to production.`) }}

        </application-row>

</template>


fix menu active when route error (#9675)

<template>
  <el-menu-collapse-transition>
    <ul class="el-menu"
      :key="+collapse"
      :style="{ backgroundColor: backgroundColor || '' }"
      :class="{
        'el-menu--horizontal': mode === 'horizontal',
        'el-menu--collapse': collapse
      }"
      role="menubar"
    >
      <slot></slot>
    </ul>
  </el-menu-collapse-transition>
</template>
<script>
  import emitter from 'element-ui/src/mixins/emitter';
  import Migrating from 'element-ui/src/mixins/migrating';
  import Menubar from 'element-ui/src/utils/menu/aria-menubar';
  import { addClass, removeClass, hasClass } from 'element-ui/src/utils/dom';

  export default {
    name: 'ElMenu',

    componentName: 'ElMenu',

    mixins: [emitter, Migrating],

    provide() {
      return {
        rootMenu: this
      };
    },

    components: {
      'el-menu-collapse-transition': {
        functional: true,
        render(createElement, context) {
          const data = {
            props: {
              mode: 'out-in'
            },
            on: {
              beforeEnter(el) {
                el.style.opacity = 0.2;
              },

              enter(el) {
                addClass(el, 'el-opacity-transition');
                el.style.opacity = 1;
              },

              afterEnter(el) {
                removeClass(el, 'el-opacity-transition');
                el.style.opacity = '';
              },

              beforeLeave(el) {
                if (!el.dataset) el.dataset = {};

                if (hasClass(el, 'el-menu--collapse')) {
                  removeClass(el, 'el-menu--collapse');
                  el.dataset.oldOverflow = el.style.overflow;
                  el.dataset.scrollWidth = el.scrollWidth;
                  addClass(el, 'el-menu--collapse');
                }

                el.style.width = el.scrollWidth + 'px';
                el.style.overflow = 'hidden';
              },

              leave(el) {
                if (!hasClass(el, 'el-menu--collapse')) {
                  addClass(el, 'horizontal-collapse-transition');
                  el.style.width = '64px';
                } else {
                  addClass(el, 'horizontal-collapse-transition');
                  el.style.width = el.dataset.scrollWidth + 'px';
                }
              },

              afterLeave(el) {
                removeClass(el, 'horizontal-collapse-transition');
                if (hasClass(el, 'el-menu--collapse')) {
                  el.style.width = el.dataset.scrollWidth + 'px';
                } else {
                  el.style.width = '64px';
                }
                el.style.overflow = el.dataset.oldOverflow;
              }
            }
          };
          return createElement('transition', data, context.children);
        }
      }
    },

    props: {
      mode: {
        type: String,
        default: 'vertical'
      },
      defaultActive: {
        type: String,
        default: ''
      },
      defaultOpeneds: Array,
      uniqueOpened: Boolean,
      router: Boolean,
      menuTrigger: {
        type: String,
        default: 'hover'
      },
      collapse: Boolean,
      backgroundColor: String,
      textColor: String,
      activeTextColor: String
    },
    data() {
      return {
        activeIndex: this.defaultActive,
        openedMenus: (this.defaultOpeneds && !this.collapse) ? this.defaultOpeneds.slice(0) : [],
        items: {},
        submenus: {}
      };
    },
    computed: {
      hoverBackground() {
        return this.backgroundColor ? this.mixColor(this.backgroundColor, 0.2) : '';
      },
      isMenuPopup() {
        return this.mode === 'horizontal' || (this.mode === 'vertical' && this.collapse);
      }
    },
    watch: {
      defaultActive: 'updateActiveIndex',

      defaultOpeneds(value) {
        if (!this.collapse) {
          this.openedMenus = value;
        }
      },

      collapse(value) {
        if (value) this.openedMenus = [];
        this.broadcast('ElSubmenu', 'toggle-collapse', value);
      }
    },
    methods: {
      updateActiveIndex() {
        const item = this.items[this.defaultActive];
        if (item) {
          this.activeIndex = item.index;
          this.initOpenedMenu();
        } else {
          this.activeIndex = null;
        }
      },

      getMigratingConfig() {
        return {
          props: {
            'theme': 'theme is removed.'
          }
        };
      },
      getColorChannels(color) {
        color = color.replace('#', '');
        if (/^[0-9a-fA-F]{3}$/.test(color)) {
          color = color.split('');
          for (let i = 2; i >= 0; i--) {
            color.splice(i, 0, color[i]);
          }
          color = color.join('');
        }
        if (/^[0-9a-fA-F]{6}$/.test(color)) {
          return {
            red: parseInt(color.slice(0, 2), 16),
            green: parseInt(color.slice(2, 4), 16),
            blue: parseInt(color.slice(4, 6), 16)
          };
        } else {
          return {
            red: 255,
            green: 255,
            blue: 255
          };
        }
      },
      mixColor(color, percent) {
        let { red, green, blue } = this.getColorChannels(color);
        if (percent > 0) { // shade given color
          red *= 1 - percent;
          green *= 1 - percent;
          blue *= 1 - percent;
        } else { // tint given color
          red += (255 - red) * percent;
          green += (255 - green) * percent;
          blue += (255 - blue) * percent;
        }
        return `rgb(${ Math.round(red) }, ${ Math.round(green) }, ${ Math.round(blue) })`;
      },
      addItem(item) {
        this.$set(this.items, item.index, item);
      },
      removeItem(item) {
        delete this.items[item.index];
      },
      addSubmenu(item) {
        this.$set(this.submenus, item.index, item);
      },
      removeSubmenu(item) {
        delete this.submenus[item.index];
      },
      openMenu(index, indexPath) {
        let openedMenus = this.openedMenus;
        if (openedMenus.indexOf(index) !== -1) return;
        // 将不在该菜单路径下的其余菜单收起
        // collapse all menu that are not under current menu item
        if (this.uniqueOpened) {
          this.openedMenus = openedMenus.filter(index => {
            return indexPath.indexOf(index) !== -1;
          });
        }
        this.openedMenus.push(index);
      },
      closeMenu(index) {
        const i = this.openedMenus.indexOf(index);
        if (i !== -1) {
          this.openedMenus.splice(i, 1);
        }
      },
      handleSubmenuClick(submenu) {
        const { index, indexPath } = submenu;
        let isOpened = this.openedMenus.indexOf(index) !== -1;

        if (isOpened) {
          this.closeMenu(index);
          this.$emit('close', index, indexPath);
        } else {
          this.openMenu(index, indexPath);
          this.$emit('open', index, indexPath);
        }
      },
      handleItemClick(item) {
        const { index, indexPath } = item;
        const oldActiveIndex = this.activeIndex;

        this.activeIndex = item.index;
        this.$emit('select', index, indexPath, item);

        if (this.mode === 'horizontal' || this.collapse) {
          this.openedMenus = [];
        }

        if (this.router) {
          this.routeToItem(item, error => {
            this.activeIndex = oldActiveIndex;
            console.error(error);
          });
        }
      },
      // 初始化展开菜单
      // initialize opened menu
      initOpenedMenu() {
        const index = this.activeIndex;
        const activeItem = this.items[index];
        if (!activeItem || this.mode === 'horizontal' || this.collapse) return;

        let indexPath = activeItem.indexPath;

        // 展开该菜单项的路径上所有子菜单
        // expand all submenus of the menu item
        indexPath.forEach(index => {
          let submenu = this.submenus[index];
          submenu && this.openMenu(index, submenu.indexPath);
        });
      },
      routeToItem(item, onError) {
        let route = item.route || item.index;
        try {
          this.$router.push(route, () => {}, onError);
        } catch (e) {
          console.error(e);
        }
      },
      open(index) {
        const { indexPath } = this.submenus[index.toString()];
        indexPath.forEach(i => this.openMenu(i, indexPath));
      },
      close(index) {
        this.closeMenu(index);
      }
    },
    mounted() {
      this.initOpenedMenu();
      this.$on('item-click', this.handleItemClick);
      this.$on('submenu-click', this.handleSubmenuClick);
      if (this.mode === 'horizontal') {
        new Menubar(this.$el); // eslint-disable-line
      }
      this.$watch('items', this.updateActiveIndex);
    }
  };
</script>

<template>
  <el-menu-collapse-transition>
    <ul class="el-menu"
      :key="+collapse"
      :style="{ backgroundColor: backgroundColor || '' }"
      :class="{
        'el-menu--horizontal': mode === 'horizontal',
        'el-menu--collapse': collapse
      }"
      role="menubar"
    >
      <slot></slot>
    </ul>
  </el-menu-collapse-transition>
</template>
<script>
  import emitter from 'element-ui/src/mixins/emitter';
  import Migrating from 'element-ui/src/mixins/migrating';
  import Menubar from 'element-ui/src/utils/menu/aria-menubar';
  import { addClass, removeClass, hasClass } from 'element-ui/src/utils/dom';

  export default {
    name: 'ElMenu',

    componentName: 'ElMenu',

    mixins: [emitter, Migrating],

    provide() {
      return {
        rootMenu: this
      };
    },

    components: {
      'el-menu-collapse-transition': {
        functional: true,
        render(createElement, context) {
          const data = {
            props: {
              mode: 'out-in'
            },
            on: {
              beforeEnter(el) {
                el.style.opacity = 0.2;
              },

              enter(el) {
                addClass(el, 'el-opacity-transition');
                el.style.opacity = 1;
              },

              afterEnter(el) {
                removeClass(el, 'el-opacity-transition');
                el.style.opacity = '';
              },

              beforeLeave(el) {
                if (!el.dataset) el.dataset = {};

                if (hasClass(el, 'el-menu--collapse')) {
                  removeClass(el, 'el-menu--collapse');
                  el.dataset.oldOverflow = el.style.overflow;
                  el.dataset.scrollWidth = el.scrollWidth;
                  addClass(el, 'el-menu--collapse');
                }

                el.style.width = el.scrollWidth + 'px';
                el.style.overflow = 'hidden';
              },

              leave(el) {
                if (!hasClass(el, 'el-menu--collapse')) {
                  addClass(el, 'horizontal-collapse-transition');
                  el.style.width = '64px';
                } else {
                  addClass(el, 'horizontal-collapse-transition');
                  el.style.width = el.dataset.scrollWidth + 'px';
                }
              },

              afterLeave(el) {
                removeClass(el, 'horizontal-collapse-transition');
                if (hasClass(el, 'el-menu--collapse')) {
                  el.style.width = el.dataset.scrollWidth + 'px';
                } else {
                  el.style.width = '64px';
                }
                el.style.overflow = el.dataset.oldOverflow;
              }
            }
          };
          return createElement('transition', data, context.children);
        }
      }
    },

    props: {
      mode: {
        type: String,
        default: 'vertical'
      },
      defaultActive: {
        type: String,
        default: ''
      },
      defaultOpeneds: Array,
      uniqueOpened: Boolean,
      router: Boolean,
      menuTrigger: {
        type: String,
        default: 'hover'
      },
      collapse: Boolean,
      backgroundColor: String,
      textColor: String,
      activeTextColor: String
    },
    data() {
      return {
        activeIndex: this.defaultActive,
        openedMenus: (this.defaultOpeneds && !this.collapse) ? this.defaultOpeneds.slice(0) : [],
        items: {},
        submenus: {}
      };
    },
    computed: {
      hoverBackground() {
        return this.backgroundColor ? this.mixColor(this.backgroundColor, 0.2) : '';
      },
      isMenuPopup() {
        return this.mode === 'horizontal' || (this.mode === 'vertical' && this.collapse);
      }
    },
    watch: {
      defaultActive: 'updateActiveIndex',

      defaultOpeneds(value) {
        if (!this.collapse) {
          this.openedMenus = value;
        }
      },

      collapse(value) {
        if (value) this.openedMenus = [];
        this.broadcast('ElSubmenu', 'toggle-collapse', value);
      }
    },
    methods: {
      updateActiveIndex() {
        const item = this.items[this.defaultActive];
        if (item) {
          this.activeIndex = item.index;
          this.initOpenedMenu();
        } else {
          this.activeIndex = null;
        }
      },

      getMigratingConfig() {
        return {
          props: {
            'theme': 'theme is removed.'
          }
        };
      },
      getColorChannels(color) {
        color = color.replace('#', '');
        if (/^[0-9a-fA-F]{3}$/.test(color)) {
          color = color.split('');
          for (let i = 2; i >= 0; i--) {
            color.splice(i, 0, color[i]);
          }
          color = color.join('');
        }
        if (/^[0-9a-fA-F]{6}$/.test(color)) {
          return {
            red: parseInt(color.slice(0, 2), 16),
            green: parseInt(color.slice(2, 4), 16),
            blue: parseInt(color.slice(4, 6), 16)
          };
        } else {
          return {
            red: 255,
            green: 255,
            blue: 255
          };
        }
      },
      mixColor(color, percent) {
        let { red, green, blue } = this.getColorChannels(color);
        if (percent > 0) { // shade given color
          red *= 1 - percent;
          green *= 1 - percent;
          blue *= 1 - percent;
        } else { // tint given color
          red += (255 - red) * percent;
          green += (255 - green) * percent;
          blue += (255 - blue) * percent;
        }
        return `rgb(${ Math.round(red) }, ${ Math.round(green) }, ${ Math.round(blue) })`;
      },
      addItem(item) {
        this.$set(this.items, item.index, item);
      },
      removeItem(item) {
        delete this.items[item.index];
      },
      addSubmenu(item) {
        this.$set(this.submenus, item.index, item);
      },
      removeSubmenu(item) {
        delete this.submenus[item.index];
      },
      openMenu(index, indexPath) {
        let openedMenus = this.openedMenus;
        if (openedMenus.indexOf(index) !== -1) return;
        // 将不在该菜单路径下的其余菜单收起
        // collapse all menu that are not under current menu item
        if (this.uniqueOpened) {
          this.openedMenus = openedMenus.filter(index => {
            return indexPath.indexOf(index) !== -1;
          });
        }
        this.openedMenus.push(index);
      },
      closeMenu(index) {
        const i = this.openedMenus.indexOf(index);
        if (i !== -1) {
          this.openedMenus.splice(i, 1);
        }
      },
      handleSubmenuClick(submenu) {
        const { index, indexPath } = submenu;
        let isOpened = this.openedMenus.indexOf(index) !== -1;

        if (isOpened) {
          this.closeMenu(index);
          this.$emit('close', index, indexPath);
        } else {
          this.openMenu(index, indexPath);
          this.$emit('open', index, indexPath);
        }
      },
      handleItemClick(item) {
        let { index, indexPath } = item;
        this.activeIndex = item.index;
        this.$emit('select', index, indexPath, item);

        if (this.mode === 'horizontal' || this.collapse) {
          this.openedMenus = [];
        }

        if (this.router) {
          this.routeToItem(item);
        }
      },
      // 初始化展开菜单
      // initialize opened menu
      initOpenedMenu() {
        const index = this.activeIndex;
        const activeItem = this.items[index];
        if (!activeItem || this.mode === 'horizontal' || this.collapse) return;

        let indexPath = activeItem.indexPath;

        // 展开该菜单项的路径上所有子菜单
        // expand all submenus of the menu item
        indexPath.forEach(index => {
          let submenu = this.submenus[index];
          submenu && this.openMenu(index, submenu.indexPath);
        });
      },
      routeToItem(item) {
        let route = item.route || item.index;
        try {
          this.$router.push(route);
        } catch (e) {
          console.error(e);
        }
      },
      open(index) {
        const { indexPath } = this.submenus[index.toString()];
        indexPath.forEach(i => this.openMenu(i, indexPath));
      },
      close(index) {
        this.closeMenu(index);
      }
    },
    mounted() {
      this.initOpenedMenu();
      this.$on('item-click', this.handleItemClick);
      this.$on('submenu-click', this.handleSubmenuClick);
      if (this.mode === 'horizontal') {
        new Menubar(this.$el); // eslint-disable-line
      }
      this.$watch('items', this.updateActiveIndex);
    }
  };
</script>


Larger drawer-list icons, and better positioning

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


Add Opinion component

Add Opinion component

<template>

Αριθμός ερωτήματος

        <textarea class="form-control" rows="2" id="opinion_question_number" name="opinion_question_number" placeholder="Σε αυτό το πεδίο γράφετε τον αριθμό ερωτήματος και κείμενο που πιθανόν να το συνοδεύει."></textarea>

Περίληψη ερωτήματος

        <textarea class="form-control" rows="2" id="opinion_summary" name="opinion_summary" placeholder="Σε αυτό το πεδίο γράφετε την περίληψη του ερωτήματος."></textarea>

Σύντομο Ιστορικό

        <textarea class="form-control" rows="2" id="opinion_history" name="opinion_history" placeholder="Σε αυτό το πεδίο γράφετε ένα σύντομο ιστορικό που αφορά το ερωτήμα."></textarea>

Ανάλυση

        <textarea class="form-control" rows="2" id="opinion_analysis" name="opinion_analysis" placeholder="Η ανάλυση της γνωμοδότησης."></textarea>

Συμπέρασμα - Απάντηση

        <textarea class="form-control" rows="2" id="opinion_conclusion" name="opinion_conclusion" placeholder="Το συμπέρασμα ή και η απάντηση της γνωμοδότησης."></textarea>

        Είδος Φορέα
        <select class="selectpicker pickers" title="Είδος Φορέα" data-live-search="true" id="opinion_government_institution_type" name="opinion_government_institution_type" data-width="auto">
          <option v-for="opinionType in opinionTypes" :data-tokens="opinionType.keywords" :value="opinionType.text">{{opinionType.text}}</option>
        </select>

</template>

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


Added link to IMDB for cast members

Added link to IMDB for cast members

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


Remove console.log

Remove console.log


Add example of fab buttons

Add example of fab buttons


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


some select fixes

some select fixes

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


Use the action renderer

Use the action renderer

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


clean code

clean code

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


add popup

add popup

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


Don't show big screen share while in grid mode

Signed-off-by: Vincent Petry <87e1f221a672a14a323e57bb65eaea19d3ed3804@nextcloud.com>

<template>

		<EmptyCallView v-if="!remoteParticipantsCount && !screenSharingActive && !isGrid" />

			<LocalMediaControls
				v-if="!isGrid"
				class="local-media-controls"
				:model="localMediaModel"
				:local-call-participant-model="localCallParticipantModel"
				:screen-sharing-button-hidden="isSidebar"
				@switch-screen-to-id="$emit('switchScreenToId', $event)" />

				<template v-for="callParticipantModel in reversedCallParticipantModels">
					<Video
						v-if="sharedDatas[callParticipantModel.attributes.peerId].promoted"
						:key="callParticipantModel.attributes.peerId"
						:token="token"
						:model="callParticipantModel"
						:shared-data="sharedDatas[callParticipantModel.attributes.peerId]"
						:show-talking-highlight="false"
						:is-grid="true"
						:fit-video="true"
						:is-big="true"
						:is-sidebar="isSidebar"
						@switchScreenToId="_switchScreenToId" />
				</template>

				<template v-for="callParticipantModel in reversedCallParticipantModels">
					<Video
						v-if="callParticipantModel.attributes.peerId === selectedVideoPeerId"
						:key="callParticipantModel.attributes.selectedVideoPeerId"
						:token="token"
						:model="callParticipantModel"
						:shared-data="sharedDatas[selectedVideoPeerId]"
						:show-talking-highlight="false"
						:is-grid="true"
						:is-big="true"
						:fit-video="true"
						@switchScreenToId="_switchScreenToId" />
				</template>

				<LocalVideo
					ref="localVideo"
					:fit-video="true"
					:is-stripe="false"
					:is-big="true"
					:local-media-model="localMediaModel"
					:video-container-aspect-ratio="videoContainerAspectRatio"
					:local-call-participant-model="localCallParticipantModel"
					:is-sidebar="false"
					@switchScreenToId="1" />

				<Screen v-show="showLocalScreen"
					:token="token"
					:local-media-model="localMediaModel"
					:shared-data="localSharedData"
					:is-big="true" />

				<template v-for="callParticipantModel in reversedCallParticipantModels">
					<Screen
						v-if="callParticipantModel.attributes.peerId === shownRemoteScreenPeerId"
						:key="'screen-' + callParticipantModel.attributes.peerId"
						:token="token"
						:call-participant-model="callParticipantModel"
						:shared-data="sharedDatas[shownRemoteScreenPeerId]"
						:is-big="true" />
				</template>

			<Grid
				v-if="!isSidebar"
				v-bind="$attrs"
				:is-stripe="!isGrid"
				:token="token"
				:fit-video="true"
				:has-pagination="true"
				:call-participant-models="callParticipantModels"
				:target-aspect-ratio="gridTargetAspectRatio"
				:local-media-model="localMediaModel"
				:local-call-participant-model="localCallParticipantModel"
				:shared-datas="sharedDatas"
				@select-video="handleSelectVideo"
				@click-local-video="handleClickLocalVideo" />

			<LocalVideo
				v-if="isSidebar && !showLocalVideo"
				ref="localVideo"
				class="local-video"
				:class="{ 'local-video--sidebar': isSidebar }"
				:show-controls="false"
				:fit-video="true"
				:is-stripe="true"
				:local-media-model="localMediaModel"
				:video-container-aspect-ratio="videoContainerAspectRatio"
				:local-call-participant-model="localCallParticipantModel"
				:is-sidebar="isSidebar"
				@switchScreenToId="1"
				@click-video="handleClickLocalVideo" />

</template>


fix banner titles

fix banner titles

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


Use loading icon

Use loading icon


Add active class to grant sort/display 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/ICJIA/icjia-gata.git/'


IssueNotesRefactor: Hide note reply form when submitted and show it again if there is an error.

<template>

        <user-avatar-link
          :link-href="author.path"
          :img-src="author.avatar_url"
          :img-alt="author.name"
          :img-size="40"
          />

            <issue-note-header
              :author="author"
              :created-at="discussion.created_at"
              :note-id="discussion.id"
              :include-toggle="true"
              @toggleHandler="toggleDiscussionHandler"
              action-text="started a discussion"
              class="discussion"
              />
            <issue-note-edited-text
              v-if="lastUpdatedAt"
              :edited-at="lastUpdatedAt"
              :edited-by="lastUpdatedBy"
              action-text="Last updated"
              class-name="discussion-headline-light js-discussion-headline"
              />

                  <component
                    v-for="note in note.notes"
                    :is="componentName(note)"
                    :note="componentData(note)"
                    :key="note.id"
                    />

                  <button
                    v-if="canReply && !isReplying"
                    @click="showReplyForm"
                    type="button"
                    class="js-vue-discussion-reply btn btn-text-field"
                    title="Add a reply">Reply...</button>
                  <issue-note-form
                    v-if="isReplying"
                    save-button-title="Comment"
                    :discussion="note"
                    :is-editing="false"
                    @handleFormUpdate="saveReply"
                    @cancelFormEdition="cancelReplyForm"
                    ref="noteForm"
                    />
                  <issue-note-signed-out-widget v-if="!canReply" />

</template>


Add titles

Add titles


Force page to be loaded as well

Force page to be loaded as well


Create submit button component

Create submit button component

<template>
    <input
      type="submit"
      :value="value"
      class="btn btn-primary"
      data-toggle="popover"
      data-container="body"
      data-placement="right"
      :data-content="message"
      @click.prevent="submit">
</template>

<script>
import axios from 'axios'
import $ from 'jquery'
import qs from 'qs'

export default {
  props: {
    value: {
      type: String,
      default: 'Save',
    },
    class: {
      type: String
    }
  },
  data() {
    return {
      message: ''
    }
  },
  methods: {
    submit(e) {
      const { form } = e.target
      const method = form._method.value || form.method || 'get'
      const url = form.action
      const data = Array.prototype.slice.call(form)
        .reduce((obj, el) => {
          if(el.name !== '_method' && el.type !== 'submit') {
            const res = qs.parse(`${el.name}=${el.value}`)
            Object.assign(obj, res)
          }
          return obj
        }, {})
      axios[method](url, data)
        .then(() => 'Saved')
        .catch(() => 'Error!')
        .then(msg => {
          this.message = msg
          $(this.$el).popover('show')
          setTimeout(() => $(this.$el).popover('hide'), 3000)
        })
    }
  }
}
</script>

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