This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch update-antdpro
in repository https://gitbox.apache.org/repos/asf/incubator-skywalking-ui.git
The following commit(s) were added to refs/heads/update-antdpro by this push:
new 4be9b39 Update utils
new 8ac3990 Merge branch 'update-antdpro' of
https://github.com/apache/incubator-skywalking-ui into update-antdpro
4be9b39 is described below
commit 4be9b39434e64d59072c4213e31d62eb73de3db7
Author: hanahmily <[email protected]>
AuthorDate: Mon Feb 26 10:45:13 2018 +0800
Update utils
---
appveyor.yml | 22 -------
src/router.js | 4 +-
src/services/graphql.js | 8 +++
src/utils/models.js | 155 ++++++++++++++++++++++++++++++++++++++++++++++++
src/utils/request.js | 25 +-------
5 files changed, 168 insertions(+), 46 deletions(-)
diff --git a/appveyor.yml b/appveyor.yml
deleted file mode 100644
index ee06d65..0000000
--- a/appveyor.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Test against the latest version of this Node.js version
-environment:
- nodejs_version: "8"
-
-# Install scripts. (runs after repo cloning)
-install:
- # Get the latest stable version of Node.js or io.js
- - ps: Install-Product node $env:nodejs_version
- # install modules
- - npm install
- # Output useful info for debugging.
- - node --version
- - npm --version
-
-# Post-install test scripts.
-test_script:
- - npm run lint
- - npm run test:all
- - npm run build
-
-# Don't actually build.
-build: off
diff --git a/src/router.js b/src/router.js
index 54eefd1..0f189f7 100644
--- a/src/router.js
+++ b/src/router.js
@@ -1,7 +1,7 @@
import React from 'react';
import { routerRedux, Switch } from 'dva/router';
import { LocaleProvider, Spin } from 'antd';
-import zhCN from 'antd/lib/locale-provider/zh_CN';
+import enUS from 'antd/lib/locale-provider/en_US';
import dynamic from 'dva/dynamic';
import { getRouterData } from './common/router';
import Authorized from './utils/Authorized';
@@ -18,7 +18,7 @@ function RouterConfig({ history, app }) {
const UserLayout = routerData['/user'].component;
const BasicLayout = routerData['/'].component;
return (
- <LocaleProvider locale={zhCN}>
+ <LocaleProvider locale={enUS}>
<ConnectedRouter history={history}>
<Switch>
<AuthorizedRoute
diff --git a/src/services/graphql.js b/src/services/graphql.js
new file mode 100644
index 0000000..1201019
--- /dev/null
+++ b/src/services/graphql.js
@@ -0,0 +1,8 @@
+import request from '../utils/request';
+
+export async function query(namespace, playload) {
+ return request(`/api/${namespace}`, {
+ method: 'POST',
+ body: playload,
+ });
+}
diff --git a/src/utils/models.js b/src/utils/models.js
new file mode 100644
index 0000000..f69cb6a
--- /dev/null
+++ b/src/utils/models.js
@@ -0,0 +1,155 @@
+import { query as queryService } from '../services/graphql';
+
+export function generateModal({ namespace, dataQuery, optionsQuery, state = {},
+ effects = {}, reducers = {}, subscriptions = {} }) {
+ return {
+ namespace,
+ state: {
+ variables: {
+ values: {},
+ labels: {},
+ options: {},
+ },
+ data: state,
+ },
+ effects: {
+ *initOptions({ payload }, { call, put }) {
+ const { variables, reducer = undefined } = payload;
+ const response = yield call(queryService, `${namespace}/options`, {
variables, query: optionsQuery });
+ if (reducer) {
+ yield put({
+ type: reducer,
+ payload: response.data,
+ });
+ } else {
+ yield put({
+ type: 'saveOptions',
+ payload: response.data,
+ });
+ }
+ },
+ *fetchData({ payload }, { call, put }) {
+ const { variables, reducer = undefined } = payload;
+ const response = yield call(queryService, namespace, { variables,
query: dataQuery });
+ if (reducer) {
+ yield put({
+ type: reducer,
+ payload: response.data,
+ });
+ } else {
+ yield put({
+ type: 'saveData',
+ payload: response.data,
+ });
+ }
+ },
+ ...effects,
+ },
+ reducers: {
+ saveOptions(preState, { payload: allOptions }) {
+ if (!allOptions) {
+ return preState;
+ }
+ const { variables } = preState;
+ const { values, labels, options } = variables;
+ const amendOptions = {};
+ const defaultValues = {};
+ const defaultLabels = {};
+ Object.keys(allOptions).forEach((_) => {
+ const thisOptions = allOptions[_];
+ if (!values[_]) {
+ if (thisOptions.length > 0) {
+ defaultValues[_] = thisOptions[0].key;
+ defaultLabels[_] = thisOptions[0].label;
+ }
+ return;
+ }
+ const key = values[_];
+ if (!thisOptions.find(o => o.key === key)) {
+ amendOptions[_] = [...thisOptions, { key, label: labels[_] }];
+ }
+ });
+ variables.options = {
+ ...options,
+ ...allOptions,
+ ...amendOptions,
+ };
+ let newVariables = variables;
+ if (Object.keys(defaultValues).length > 0) {
+ newVariables = {
+ ...variables,
+ values: {
+ ...values,
+ ...defaultValues,
+ },
+ labels: {
+ ...labels,
+ ...defaultLabels,
+ },
+ };
+ }
+ return {
+ ...preState,
+ variables: newVariables,
+ };
+ },
+ save(preState, { payload: { variables: { values = {}, options = {},
labels = {} },
+ data = {} } }) {
+ const { variables: { values: preValues, options: preOptions, labels:
preLabels },
+ data: preData } = preState;
+ return {
+ variables: {
+ values: {
+ ...preValues,
+ ...values,
+ },
+ options: {
+ ...preOptions,
+ ...options,
+ },
+ labels: {
+ ...preLabels,
+ ...labels,
+ },
+ },
+ data: {
+ ...preData,
+ ...data,
+ },
+ };
+ },
+ saveData(preState, { payload }) {
+ const { data } = preState;
+ return {
+ ...preState,
+ data: {
+ ...data,
+ ...payload,
+ },
+ };
+ },
+ saveVariables(preState, { payload: { values: variableValues, labels = {}
} }) {
+ const { variables: preVariables } = preState;
+ const { values: preValues, lables: preLabels } = preVariables;
+ return {
+ ...preState,
+ variables: {
+ ...preVariables,
+ values: {
+ ...preValues,
+ ...variableValues,
+ },
+ labels: {
+ ...preLabels,
+ ...labels,
+ },
+ },
+ };
+ },
+ ...reducers,
+ },
+ subscriptions: {
+ ...subscriptions,
+ },
+ };
+}
diff --git a/src/utils/request.js b/src/utils/request.js
index ccabf19..fa8af59 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -4,21 +4,8 @@ import { routerRedux } from 'dva/router';
import store from '../index';
const codeMessage = {
- 200: '服务器成功返回请求的数据',
- 201: '新建或修改数据成功。',
- 202: '一个请求已经进入后台排队(异步任务)',
- 204: '删除数据成功。',
- 400: '发出的请求有错误,服务器没有进行新建或修改数据,的操作。',
- 401: '用户没有权限(令牌、用户名、密码错误)。',
- 403: '用户得到授权,但是访问是被禁止的。',
- 404: '发出的请求针对的是不存在的记录,服务器没有进行操作',
- 406: '请求的格式不可得。',
- 410: '请求的资源被永久删除,且不会再得到的。',
- 422: '当创建一个对象时,发生一个验证错误。',
- 500: '服务器发生错误,请检查服务器',
- 502: '网关错误',
- 503: '服务不可用,服务器暂时过载或维护',
- 504: '网关超时',
+ 404: 'No resource',
+ 500: 'Server error',
};
function checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
@@ -26,7 +13,7 @@ function checkStatus(response) {
}
const errortext = codeMessage[response.status] || response.statusText;
notification.error({
- message: `请求错误 ${response.status}: ${response.url}`,
+ message: `Request Error ${response.status}: ${response.url}`,
description: errortext,
});
const error = new Error(errortext);
@@ -67,12 +54,6 @@ export default function request(url, options) {
.catch((e) => {
const { dispatch } = store;
const status = e.name;
- if (status === 401) {
- dispatch({
- type: 'login/logout',
- });
- return;
- }
if (status === 403) {
dispatch(routerRedux.push('/exception/403'));
return;
--
To stop receiving notification emails like this one, please contact
[email protected].