From ae08a735c561038fc1babfa662a597bd742da079 Mon Sep 17 00:00:00 2001
From: qingyiay <2386314947@qq.com>
Date: 星期一, 11 九月 2023 11:11:03 +0800
Subject: [PATCH] 操作指引修改,增加重置密码和修改密码
---
pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue | 93 +++++++++++++++
pages/driver-page/drvier-my/drvier-my.vue | 68 +++++++++--
pages/customer-page/customer-index/customer-index.vue | 14 -
pages/customer-page/customer-my/customer-my.vue | 94 +++++++++++++++
pages/driver-page/driver-index/driver-index.vue | 15 +-
store/index.js | 48 +++++++
6 files changed, 296 insertions(+), 36 deletions(-)
diff --git a/pages/customer-page/customer-index/customer-index.vue b/pages/customer-page/customer-index/customer-index.vue
index a67baf1..95fd954 100644
--- a/pages/customer-page/customer-index/customer-index.vue
+++ b/pages/customer-page/customer-index/customer-index.vue
@@ -26,7 +26,7 @@
</u-cell>
</u-cell-group>
</view>
- <view style="position: relative;top: -120px;">
+ <view style="position: relative;">
<u-empty mode="data"
icon="http://cdn.uviewui.com/uview/empty/data.png"
textSize="30"
@@ -162,7 +162,7 @@
<view class="previewImage-container">
<view class="previewImage-container">
<previewImage ref="previewImage"
- :imgs="TourImgList"
+ :imgs="customerTourImgList"
:saveBtn='false'></previewImage>
</view>
</view>
@@ -195,6 +195,7 @@
import { customerId } from '@/utils/status';
import previewImage from '@/components/kxj-previewImage/kxj-previewImage.vue';
import { BaseUrl } from '@/api/publicInterface.js'
+ import { mapState } from 'vuex'
export default {
props: {
orderPlanDataStore: {
@@ -216,6 +217,7 @@
}
},
computed: {
+ ...mapState(['customerTourImgList']),
roleType() {
return uni.getStorageSync('roleType');
},
@@ -249,12 +251,6 @@
onlineurl,
previewImageShow: false,
previewImageSrc: '',
- TourImgList: ['https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality01.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality02.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality03.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality04.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality05.jpg'
- ],
phone: "",
isFirstLogin: true
};
@@ -392,7 +388,7 @@
.navigateTo({ url: `/pages/driver-page/driver-index/bill-of-lading-details/selectOrderPlan/selectOrderPlan?index=${index}` });
},
noobTour(v) {
- this.$refs.previewImage.open('https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality01.jpg')
+ this.$refs.previewImage.open('https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality1.jpg')
},
getLogOn() {
this.$reqGet('getUserEntity').then(res => {
diff --git a/pages/customer-page/customer-my/customer-my.vue b/pages/customer-page/customer-my/customer-my.vue
index e41ecbb..5d0ba40 100644
--- a/pages/customer-page/customer-my/customer-my.vue
+++ b/pages/customer-page/customer-my/customer-my.vue
@@ -71,10 +71,18 @@
</view>
<view class="utils-button">
- <view class="statistics"><u-button text="鐢ㄦ埛绠$悊"
+ <view class="statistics">
+ <u-button text="鐢ㄦ埛绠$悊"
type="primary"
@click="userManage"
- v-if="roleType == 1 && userEntity.isHostUser === '0'"></u-button></view>
+ v-if="roleType == 1 && userEntity.isHostUser === '0'"></u-button>
+ </view>
+ <view class="logout"><u-button text="淇敼瀵嗙爜"
+ type="primary"
+ @click="modifyPwd"></u-button></view>
+ <view class="logout"><u-button text="閲嶇疆瀵嗙爜"
+ type="primary"
+ @click="initPwd"></u-button></view>
<view class="logout"><u-button text="閫�鍑虹櫥褰�"
type="primary"
@click="logout()"></u-button></view>
@@ -100,7 +108,7 @@
</view>
<view class="previewImage-container">
<previewImage ref="previewImage"
- :imgs="TourImgList"
+ :imgs="customerTourImgList"
:saveBtn='false'></previewImage>
</view>
<u-toast ref="uToast"></u-toast>
@@ -171,6 +179,30 @@
@confirm="logoutConfirm"
@cancel="logoutCancel"></u-modal>
</view>
+ <!-- 閲嶇疆瀵嗙爜寮瑰嚭妗� -->
+ <view class="initPwdModal">
+ <u-modal :show="initPwdShow"
+ title="閲嶇疆瀵嗙爜"
+ showCancelButton
+ content="鍒濆瀵嗙爜灏嗗彉鏇翠负123456,鏄惁纭閲嶇疆"
+ @confirm="initPwdConfirm"
+ @cancel="initPwdCancel"></u-modal>
+ </view>
+ <!-- 淇敼瀵嗙爜寮瑰嚭妗� -->
+ <view class="modifyPwdModal">
+ <u-modal :show="modifyPwdShow"
+ title="淇敼瀵嗙爜"
+ showCancelButton
+ @confirm="modifyPwdConfirm"
+ @cancel="modifyPwdCancel">
+ <view class="modifyPwd">
+ <u-input v-model="passwordModified"
+ placeholder="璇疯緭鍏ヤ慨鏀瑰悗鐨勫瘑鐮�"
+ border="surround"
+ type="password"></u-input>
+ </view>
+ </u-modal>
+ </view>
</view>
</template>
@@ -178,6 +210,7 @@
import combinedTitle from '@/components/combined-title/combined-title.vue';
import previewImage from '@/components/kxj-previewImage/kxj-previewImage.vue';
import { customerId, redirectLogin } from '@/utils/status';
+ import { mapState } from 'vuex'
export default {
components: {
combinedTitle,
@@ -218,9 +251,13 @@
'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality04.jpg',
'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality05.jpg'
],
+ initPwdShow: false,
+ modifyPwdShow: false,
+ passwordModified: ''
};
},
computed: {
+ ...mapState(['customerTourImgList']),
roleType() {
return uni.getStorageSync('roleType');
}
@@ -387,6 +424,50 @@
url: `/pages/customer-page/fleet-management/fleet-management?id=${id}`
});
},
+ updateInfo() {
+ this.$reqPost('updateUser', this.userEntity, 'json').then(res => {
+ uni.hideLoading()
+ if (res.code == 0) {
+ uni.showToast({
+ title: '閲嶇疆鎴愬姛',
+ duration: 2000,
+ icon: 'success'
+ })
+ } else {
+ this.$u.toast(res.msg ? res.msg : '淇敼澶辫触');
+ }
+ }).catch(err => {
+ this.$u.toast('淇敼澶辫触');
+ });
+ },
+ initPwd() {
+ this.initPwdShow = true
+ },
+ initPwdConfirm() {
+ this.initPwdShow = false
+ uni.showLoading({
+ title: '鍔犺浇涓�'
+ })
+ this.userEntity.password = '123456'
+ this.updateInfo()
+ },
+ initPwdCancel() {
+ this.initPwdShow = false
+ },
+ modifyPwd() {
+ this.modifyPwdShow = true
+ },
+ modifyPwdConfirm() {
+ if (this.passwordModified.length === 0) {
+ return this.$u.toast('瀵嗙爜涓嶈兘涓虹┖')
+ }
+ this.modifyPwdShow = false
+ this.userEntity.password = this.passwordModified
+ this.updateInfo()
+ },
+ modifyPwdCancel() {
+ this.modifyPwdShow = false
+ },
logout() {
this.logoutShow = true;
},
@@ -406,7 +487,7 @@
},
noobTour() {
this.$nextTick(() => {
- this.$refs.previewImage.open('https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality01.jpg')
+ this.$refs.previewImage.open('https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality1.jpg')
})
}
}
@@ -552,5 +633,10 @@
}
}
}
+
+ .modifyPwd {
+ width: 100%;
+ border: 1rpx solid rgb(220, 223, 230);
+ }
}
</style>
\ No newline at end of file
diff --git a/pages/driver-page/driver-index/driver-index.vue b/pages/driver-page/driver-index/driver-index.vue
index 2e15b18..e94b2b9 100644
--- a/pages/driver-page/driver-index/driver-index.vue
+++ b/pages/driver-page/driver-index/driver-index.vue
@@ -248,7 +248,7 @@
<!-- 鍥剧墖棰勮寮瑰嚭妗� -->
<view class="previewImage-container">
<previewImage ref="previewImage"
- :imgs="TourImgList"
+ :imgs="driverTourImgList"
:saveBtn='false'></previewImage>
</view>
</view>
@@ -262,6 +262,7 @@
import { onlineurl } from '@/api/request.js'
import { BaseUrl } from '@/api/publicInterface.js'
import previewImage from '@/components/kxj-previewImage/kxj-previewImage.vue';
+ import { mapState } from 'vuex'
export default {
components: {
combinedTitle,
@@ -283,6 +284,7 @@
},
},
computed: {
+ ...mapState(['driverTourImgList']),
roleType() {
return uni.getStorageSync('roleType');
},
@@ -304,18 +306,13 @@
customerId: '',
coalStatus: ['鏈О閲�', '绉伴噸涓�', '楠岃川涓�', '绉伴噸瀹屾垚', '楠岃川瀹屾垚'],
onlineurl,
- TourImgList: ['https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj1.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj2.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj3.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj4.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj5.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj6.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj7.jpg'
- ],
phone: "",
isFirstLogin: true //鏄惁鏄涓�娆$櫥褰�
};
},
+ onLoad() {
+ this.TourImgList = TourImgList
+ },
onShow() {
this.init();
},
diff --git a/pages/driver-page/drvier-my/drvier-my.vue b/pages/driver-page/drvier-my/drvier-my.vue
index c03d621..1c53bf5 100644
--- a/pages/driver-page/drvier-my/drvier-my.vue
+++ b/pages/driver-page/drvier-my/drvier-my.vue
@@ -183,7 +183,7 @@
<!-- 鍥剧墖棰勮寮瑰嚭妗� -->
<view class="previewImage-container">
<previewImage ref="previewImage"
- :imgs="TourImgList"
+ :imgs="driverTourImgList"
:saveBtn='false'></previewImage>
</view>
@@ -349,13 +349,21 @@
@confirm="logoutConfirm"
@cancel="logoutCancel"></u-modal>
</view>
+ <view class="initPwdModal">
+ <u-modal :show="initPwdShow"
+ title="閲嶇疆瀵嗙爜"
+ showCancelButton
+ content="鍒濆瀵嗙爜灏嗗彉鏇翠负123456,鏄惁纭閲嶇疆"
+ @confirm="initPwdConfirm"
+ @cancel="initPwdCancel"></u-modal>
+ </view>
</view>
</template>
<script>
import { customerId, userInfo, redirectLogin } from '@/utils/status';
import { BaseUrl } from '@/api/publicInterface.js';
- import { mapMutations } from 'vuex';
+ import { mapMutations, mapState } from 'vuex';
import { onlineurl } from '@/api/request.js'
import combinedTitle from '@/components/combined-title/combined-title.vue';
import previewImage from '@/components/kxj-previewImage/kxj-previewImage.vue';
@@ -363,6 +371,9 @@
components: {
combinedTitle,
previewImage
+ },
+ computed: {
+ ...mapState(['driverTourImgList']),
},
data() {
return {
@@ -425,8 +436,19 @@
weight: {
type: 'number',
required: true,
- message: '璇峰~鍐欎綋閲�',
- trigger: ['blur', 'change']
+ trigger: ['blur', 'change'],
+ transform(value) {
+ return Number(value);
+ },
+ validator: (rule, value, callback) => {
+ if (!value) {
+ callback(new Error('璇峰~鍐欎綋閲�'))
+ } else if (value > 200) {
+ callback(new Error('璇峰~鍐欏悎鐞嗕綋閲�'))
+ } else {
+ callback()
+ }
+ }
},
password: {
required: false,
@@ -513,14 +535,7 @@
value: '钃濊壊'
}
],
- TourImgList: ['https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj1.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj2.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj3.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj4.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj5.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj6.jpg',
- 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj7.jpg'
- ],
+ initPwdShow: false
};
},
onShow() {
@@ -706,6 +721,35 @@
this.$u.toast('淇敼澶辫触');
});
},
+ initPwd() {
+ this.initPwdShow = true
+ },
+ initPwdConfirm() {
+ this.initPwdShow = false
+ uni.showLoading({
+ title: '鍔犺浇涓�...'
+ });
+ this.editUserInfo.password = '123456';
+ this.editUserInfo.carImg = uni.getStorageSync('carImg');
+ this.editUserInfo.drivingImg = uni.getStorageSync('drivingImg')
+ this.$reqPost('updateUser', this.editUserInfo, 'json').then(res => {
+ uni.hideLoading()
+ if (res.code == 0) {
+ uni.showToast({
+ title: '閲嶇疆鎴愬姛',
+ duration: 2000,
+ icon: 'success'
+ })
+ } else {
+ this.$u.toast(res.msg ? res.msg : '淇敼澶辫触');
+ }
+ }).catch(err => {
+ this.$u.toast('淇敼澶辫触');
+ });
+ },
+ initPwdCancel() {
+ this.initPwdShow = false
+ },
logout() {
this.logoutShow = true;
},
diff --git a/pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue b/pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue
index b0fc123..1cb61fa 100644
--- a/pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue
+++ b/pages/freight-forwarder-page/freightForwarder-my/freightForwarder-my.vue
@@ -75,6 +75,12 @@
<!-- <view class="statistics"><u-button text="鍙戣繍缁熻" type="primary" @click="statistics"></u-button></view> -->
<view class="utils-button">
+ <view class="utils"><u-button text="淇敼瀵嗙爜"
+ type="primary"
+ @click="modifyPwd"></u-button></view>
+ <view class="utils"><u-button text="閲嶇疆瀵嗙爜"
+ type="primary"
+ @click="initPwd"></u-button></view>
<view class="utils"><u-button text="閫�鍑虹櫥褰�"
type="primary"
@click="logout"></u-button></view>
@@ -99,6 +105,30 @@
:content="logoutContent"
@confirm="logoutConfirm"
@cancel="logoutCancel"></u-modal>
+ </view>
+ <!-- 閲嶇疆瀵嗙爜寮瑰嚭妗� -->
+ <view class="initPwdModal">
+ <u-modal :show="initPwdShow"
+ title="閲嶇疆瀵嗙爜"
+ showCancelButton
+ content="鍒濆瀵嗙爜灏嗗彉鏇翠负123456,鏄惁纭閲嶇疆"
+ @confirm="initPwdConfirm"
+ @cancel="initPwdCancel"></u-modal>
+ </view>
+ <!-- 淇敼瀵嗙爜寮瑰嚭妗� -->
+ <view class="modifyPwdModal">
+ <u-modal :show="modifyPwdShow"
+ title="淇敼瀵嗙爜"
+ showCancelButton
+ @confirm="modifyPwdConfirm"
+ @cancel="modifyPwdCancel">
+ <view class="modifyPwd">
+ <u-input v-model="passwordModified"
+ placeholder="璇疯緭鍏ヤ慨鏀瑰悗鐨勫瘑鐮�"
+ border="surround"
+ type="password"></u-input>
+ </view>
+ </u-modal>
</view>
</view>
</template>
@@ -126,7 +156,12 @@
// 閫�鍑烘ā鎬佹
logoutShow: false,
logoutTitle: '鎻愮ず',
- logoutContent: '鏄惁纭閫�鍑�'
+ logoutContent: '鏄惁纭閫�鍑�',
+ initPwdShow: false,
+ modifyPwdShow: false,
+ passwordModified: '',
+ // 鐢ㄦ埛淇℃伅瀵硅薄
+ userEntity: {},
};
},
onShow() {
@@ -135,6 +170,13 @@
methods: {
init() {
this.getFleet();
+ this.getUserEntity();
+ },
+ // 鑾峰彇鐢ㄦ埛淇℃伅
+ getUserEntity() {
+ this.$reqGet('getUserEntity').then(res => {
+ this.userEntity = res.data;
+ });
},
// 鑾峰彇杞﹂槦
getFleet() {
@@ -204,6 +246,50 @@
uni.navigateTo({
url: `/pages/customer-page/fleet-management/fleet-management?id=${id}`
});
+ },
+ updateInfo() {
+ this.$reqPost('updateUser', this.userEntity, 'json').then(res => {
+ uni.hideLoading()
+ if (res.code == 0) {
+ uni.showToast({
+ title: '閲嶇疆鎴愬姛',
+ duration: 2000,
+ icon: 'success'
+ })
+ } else {
+ this.$u.toast(res.msg ? res.msg : '淇敼澶辫触');
+ }
+ }).catch(err => {
+ this.$u.toast('淇敼澶辫触');
+ });
+ },
+ initPwd() {
+ this.initPwdShow = true
+ },
+ initPwdConfirm() {
+ this.initPwdShow = false
+ uni.showLoading({
+ title: '鍔犺浇涓�'
+ })
+ this.userEntity.password = '123456'
+ this.updateInfo()
+ },
+ initPwdCancel() {
+ this.initPwdShow = false
+ },
+ modifyPwd() {
+ this.modifyPwdShow = true
+ },
+ modifyPwdConfirm() {
+ if (this.passwordModified.length === 0) {
+ return this.$u.toast('瀵嗙爜涓嶈兘涓虹┖')
+ }
+ this.modifyPwdShow = false
+ this.userEntity.password = this.passwordModified
+ this.updateInfo()
+ },
+ modifyPwdCancel() {
+ this.modifyPwdShow = false
},
logout() {
this.logoutShow = true;
@@ -348,5 +434,10 @@
}
}
}
+
+ .modifyPwd {
+ width: 100%;
+ border: 1rpx solid rgb(220, 223, 230);
+ }
}
</style>
\ No newline at end of file
diff --git a/store/index.js b/store/index.js
index 1ee03b7..e78739e 100644
--- a/store/index.js
+++ b/store/index.js
@@ -109,7 +109,53 @@
// 绉伴噸绋冲畾鎬� 0/绋冲畾 1/闈炵ǔ瀹� 闈炵ǔ瀹氭�佷笉鑳界偣绉伴噸
globalWarning: false,
globalShowWeigh: [],
- isFirstLogin: true
+ isFirstLogin: true,
+ driverTourImgList: ['https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj1.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj2.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj3.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj4.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj5.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj6.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj7.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj8.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj9.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj10.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj11.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj12.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj13.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj14.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj15.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj16.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj17.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj18.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj19.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj20.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj21.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj22.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj23.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj24.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj25.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj26.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/driver/sj27.jpg',
+ ],
+ customerTourImgList: ['https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality1.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality2.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality3.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality4.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality5.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality6.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality7.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality8.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality9.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality10.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality11.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality12.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality13.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality14.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality15.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality16.jpg',
+ 'https://mx.jzeg.cn:9095/appimg/image/tour/quality/quality17.jpg',
+ ],
},
mutations: {
lengthchange(state, payload) {
--
Gitblit v1.9.1