Merge branch 'develop' into feature/settings-mobile-ui

This commit is contained in:
Angelina Filippova 2020-02-14 18:31:31 +03:00
commit da71710726
10 changed files with 222 additions and 25 deletions

30
.dockerignore Normal file
View file

@ -0,0 +1,30 @@
# block everything
**
# allowed files
!AGPL-3
!CHANGELOG.md
!README.md
!README.png
!.babelrc
!.eslintignore
!.eslintrc.js
!.postcssrc.js
!favicon.ico
!index.html
!package.json
!yarn.lock
# allowed subdirectories
!/build/**
!/config/**
!/docker/**
!/public/**
!/static/**
!/src/**
# blocked subdirectory files
**/*.log
**/*~
**/.DS_Store
**/Thumbs.db

View file

@ -1,26 +1,97 @@
image: node:10
image: node:10-alpine
variables: &global_variables
DOCKER_DRIVER: overlay2
DOCKER_HOST: unix:///var/run/docker.sock
cache: &global_cache_policy
key: '$CI_COMMIT_SHORT_SHA'
policy: pull-push
paths:
- node_modules/
- build
stages:
- lint
- build
- test
- release
build:
stage: build
before_script: &before-build
- apk --no-cache add git
script:
- npm install
- npm run build:prod
artifacts: &release-artifacts
name: "admin-fe-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA"
paths:
- dist/
lint:
stage: lint
script:
stage: test
before_script: &before-yarn
- apk --no-cache add git
- yarn cache clean
- yarn
cache:
key: '$CI_COMMIT_SHORT_SHA'
policy: pull
script:
- yarn lint
test:
stage: test
variables:
APT_CACHE_DIR: apt-cache
before_script: *before-yarn
cache:
key: '$CI_COMMIT_SHORT_SHA'
policy: pull
script:
- yarn
- yarn test
build:
stage: build
docker:
stage: release
image: docker:latest
cache: {}
dependencies: []
variables: &docker-variables
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest
IMAGE_TAG_LATEST_STABLE: $CI_REGISTRY_IMAGE:stable
before_script: &before-docker
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $IMAGE_TAG_SLUG || true
- export CI_JOB_TIMESTAMP=$(date --utc -Iseconds)
- export CI_VCS_REF=$CI_COMMIT_SHORT_SHA
allow_failure: true
script:
- yarn
- npm run build:prod
- docker build --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST .
- docker push $IMAGE_TAG
- docker push $IMAGE_TAG_SLUG
- docker push $IMAGE_TAG_LATEST
tags:
- dind
only:
- develop@pleroma/admin-fe
- /^(features|ci)\/.*/@jp/admin-fe
docker-stable:
stage: release
image: docker:latest
cache: {}
dependencies: []
variables: *docker-variables
before_script: *before-docker
allow_failure: true
script:
- docker build --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST_STABLE .
- docker push $IMAGE_TAG
- docker push $IMAGE_TAG_SLUG
- docker push $IMAGE_TAG_LATEST_STABLE
tags:
- dind
only:
- master@pleroma/admin-fe

38
Dockerfile Normal file
View file

@ -0,0 +1,38 @@
FROM node:10-alpine as build
COPY . .
RUN apk --no-cache add git && \
npm install && \
npm run build:prod
FROM nginx:mainline-alpine
LABEL maintainer="ops@pleroma.social" \
org.opencontainers.image.title="pleroma-adminfe" \
org.opencontainers.image.description="Pleroma-adminfe for Docker" \
org.opencontainers.image.authors="ops@pleroma.social" \
org.opencontainers.image.vendor="pleroma.social" \
org.opencontainers.image.documentation="https://git.pleroma.social/pleroma/pleroma-adminfe" \
org.opencontainers.image.licenses="AGPL-3.0" \
org.opencontainers.image.url="https://pleroma.social" \
org.opencontainers.image.revision=$VCS_REF \
org.opencontainers.image.created=$BUILD_DATE
ARG DATA=/usr/share/nginx/html
COPY --from=build /dist/ ${DATA}
COPY ./docker/docker-entrypoint.sh /usr/local/bin/
COPY ./docker/nginx.conf.tpl /etc/nginx/nginx.conf.tpl
RUN apk add --no-cache gettext
EXPOSE 80
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD exec nginx -g 'daemon off;'

4
docker/docker-entrypoint.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
set -e
envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < "/etc/nginx/nginx.conf.tpl" > "/etc/nginx/nginx.conf"
exec "$@"

32
docker/nginx.conf.tpl Normal file
View file

@ -0,0 +1,32 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /tmp/nginx.pid;
events {
worker_connections 1024;
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
proxy_cache_path /tmp/pleroma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m max_size=10g
inactive=720m use_temp_path=off;
server {
listen 80;
server_name _;
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.html;
}
}
}

View file

@ -358,7 +358,8 @@ export default {
successfullyUpdated: 'Successfully updated',
metadatLowerCase: 'metadata',
files: 'files',
successfullyRemoved: 'Setting removed successfully!'
successfullyRemoved: 'Setting removed successfully!',
seeDocs: 'See Documentation'
},
invites: {
inviteTokens: 'Invite tokens',

View file

@ -46,7 +46,7 @@
:size="isDesktop ? 'large' : 'small'"
@change="update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)"/>
<el-select
v-if="setting.type === 'module' || (setting.type.includes('atom') && setting.type.includes(false))"
v-if="setting.type === 'module' || (setting.type.includes('atom') && setting.type.includes('dropdown'))"
:value="inputValue"
clearable
@change="update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)">

View file

@ -13,7 +13,6 @@
</el-form>
<div class="line"/>
<el-form ref="quackData" :model="quackData" :label-width="labelWidth">
<el-form-item label="Quack logger:" class="settings-input"/>
<setting :setting-group="quack" :data="quackData"/>
</el-form>
<div class="submit-button-container">

View file

@ -1,6 +1,19 @@
<template>
<div class="settings-container">
<h1 class="settings-header">{{ $t('settings.settings') }}</h1>
<div class="settings-header-container">
<h1 class="settings-header">{{ $t('settings.settings') }}</h1>
<el-link
:underline="false"
href="https://docs-develop.pleroma.social/backend/admin/config/"
target="_blank">
<el-button class="settings-docs-button">
<span>
<i class="el-icon-document"/>
{{ $t('settings.seeDocs') }}
</span>
</el-button>
</el-link>
</div>
<el-tabs v-if="isDesktop" v-model="activeTab" tab-position="left">
<el-tab-pane :label="$t('settings.activityPub')" :disabled="configDisabled" name="activityPub" lazy>
<activity-pub/>
@ -187,9 +200,6 @@ export default {
},
isMobile() {
return this.$store.state.app.device === 'mobile'
},
tabPosition() {
return this.isMobile ? 'top' : 'left'
}
},
mounted: function() {
@ -203,11 +213,23 @@ export default {
.el-tabs {
margin-top: 20px
}
}
.settings-docs-button {
width: 163px;
text-align: left;
padding: 10px;
}
.settings-header {
margin: 22px 0 0 15px;
margin: 0;
}
.settings-header-container {
display: flex;
height: 36px;
justify-content: space-between;
align-items: center;
margin: 22px 30px 15px 15px;
}
@media only screen and (min-width: 1824px) {
.settings-container {
max-width: 1824px;

View file

@ -112,11 +112,11 @@ export default {
}
}
.filter-container {
display: flex;
height: 36px;
justify-content: space-between;
align-items: center;
margin: 22px 0 15px 0;
display: flex;
height: 36px;
justify-content: space-between;
align-items: center;
margin: 22px 0 15px 0;
}
.select-instance {
width: 350px;