From 0613b72254c09cfebcda6e018ad0353c80f047d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=90=9A=E8=87=B4=E8=BF=9C?= Date: Fri, 31 Jul 2020 15:58:47 +0800 Subject: [PATCH] feat: prepare to release (#352) * feat(ManagerAPI): added ASF header * feat(FE): aded ASF Header * feat(FE): added ASF header * fix(FE): update PluginDrawer * feat: remove some images * feat: added LICENSE * feat: update Version * feat: added NOTICE & CODE_OF_CONDUCT * feat: added initial CHANGELOG * feat: rename CODE_OF_CONDUCT * feat: revert version * feat: update LICENSE * feat: update License --- .eslintrc.js | 16 ++ .prettierrc.js | 16 ++ .stylelintrc.js | 16 ++ CHANGELOG.md | 36 +++ CODE_OF_CONDUCT.md | 105 +++++++++ Dockerfile | 17 ++ LICENSE | 218 ++++++++++++++++++ NOTICE | 5 + README-dashboard.md | 18 ++ README.md | 18 ++ api/docker-compose.yml | 16 ++ api/route/ssl_test.go | 16 ++ api/route/upstream.go | 16 ++ api/service/upstream.go | 17 ++ compose/README.md | 19 ++ compose/apisix_conf/config.yaml | 16 ++ compose/docker-compose.yml | 16 ++ compose/gen-config-yaml.sh | 17 ++ .../provisioning/dashboards/all.yaml | 16 ++ .../provisioning/datasources/all.yaml | 16 ++ compose/manager_conf/build.sh | 17 ++ compose/prometheus_conf/prometheus.yml | 16 ++ config/config.ts | 16 ++ config/defaultSettings.ts | 16 ++ config/proxy.ts | 21 +- config/routes.ts | 16 ++ jest.config.js | 16 ++ licenses/LICENSE-ant-design-pro.txt | 21 ++ mock/notices.ts | 114 ++------- mock/route.ts | 18 +- mock/user.ts | 168 ++------------ netlify.toml | 16 ++ package.json | 6 +- public/home_bg.png | Bin 203330 -> 0 bytes public/icons/icon-128x128.png | Bin 1329 -> 0 bytes public/icons/icon-192x192.png | Bin 1856 -> 0 bytes public/icons/icon-512x512.png | Bin 5082 -> 0 bytes public/pro_icon.svg | 1 - src/access.ts | 16 ++ src/app.tsx | 16 ++ src/components/ActionBar/ActionBar.tsx | 16 ++ src/components/ActionBar/index.ts | 16 ++ src/components/ActionBar/locales/en-US.ts | 16 ++ src/components/ActionBar/locales/zh-CN.ts | 16 ++ src/components/Footer/index.tsx | 16 ++ src/components/HeaderDropdown/index.less | 23 ++ src/components/HeaderDropdown/index.tsx | 23 ++ src/components/NoticeIcon/NoticeList.less | 23 ++ src/components/NoticeIcon/NoticeList.tsx | 25 +- src/components/NoticeIcon/index.less | 23 ++ src/components/NoticeIcon/index.tsx | 25 +- src/components/PageLoading/index.tsx | 23 ++ src/components/PanelSection/index.tsx | 16 ++ src/components/PluginForm/PluginForm.tsx | 16 ++ src/components/PluginForm/README.md | 18 ++ src/components/PluginForm/data.ts | 16 ++ src/components/PluginForm/index.ts | 16 ++ src/components/PluginForm/locales/en-US.ts | 16 ++ src/components/PluginForm/locales/zh-CN.ts | 16 ++ src/components/PluginForm/service.ts | 16 ++ src/components/PluginForm/transformer.ts | 16 ++ src/components/PluginForm/typing.d.ts | 16 ++ src/components/PluginModal/index.tsx | 16 ++ src/components/PluginPage/PluginCard.tsx | 16 ++ src/components/PluginPage/PluginDrawer.tsx | 17 +- src/components/PluginPage/PluginPage.tsx | 16 ++ src/components/PluginPage/data.ts | 16 ++ src/components/PluginPage/index.ts | 16 ++ src/components/PluginPage/locales/en-US.ts | 16 ++ src/components/PluginPage/locales/zh-CN.ts | 16 ++ src/components/PluginPage/service.ts | 16 ++ src/components/PluginPage/typing.d.ts | 16 ++ .../RightContent/AvatarDropdown.tsx | 23 ++ src/components/RightContent/index.less | 23 ++ src/components/RightContent/index.tsx | 23 ++ src/constants.ts | 16 ++ src/e2e/__mocks__/antd-pro-merge-less.js | 23 ++ src/e2e/baseLayout.e2e.js | 23 ++ src/global.less | 16 ++ src/global.tsx | 16 ++ src/helpers.tsx | 16 ++ src/iconfont.ts | 16 ++ src/locales/en-US.ts | 16 ++ src/locales/en-US/component.ts | 16 ++ src/locales/en-US/globalHeader.ts | 16 ++ src/locales/en-US/menu.ts | 16 ++ src/locales/en-US/pwa.ts | 16 ++ src/locales/en-US/setting.ts | 16 ++ src/locales/en-US/settingDrawer.ts | 16 ++ src/locales/zh-CN.ts | 16 ++ src/locales/zh-CN/component.ts | 16 ++ src/locales/zh-CN/globalHeader.ts | 16 ++ src/locales/zh-CN/menu.ts | 16 ++ src/locales/zh-CN/pwa.ts | 16 ++ src/locales/zh-CN/setting.ts | 16 ++ src/locales/zh-CN/settingDrawer.ts | 16 ++ src/pages/404.tsx | 23 ++ src/pages/Consumer/Create.tsx | 16 ++ src/pages/Consumer/List.tsx | 16 ++ src/pages/Consumer/components/Preview.tsx | 16 ++ src/pages/Consumer/components/Step1.tsx | 16 ++ src/pages/Consumer/index.ts | 16 ++ src/pages/Consumer/locales/en-US.ts | 16 ++ src/pages/Consumer/locales/zh-CN.ts | 16 ++ src/pages/Consumer/service.ts | 16 ++ src/pages/Consumer/typing.d.ts | 16 ++ src/pages/Metrics/Metrics.tsx | 16 ++ src/pages/Metrics/index.ts | 16 ++ src/pages/Metrics/locales/en-US.ts | 16 ++ src/pages/Metrics/locales/zh-CN.ts | 16 ++ src/pages/Metrics/service.ts | 16 ++ src/pages/Route/Create.less | 16 ++ src/pages/Route/Create.tsx | 16 ++ src/pages/Route/List.tsx | 16 ++ .../components/CreateStep4/CreateStep4.tsx | 16 ++ .../Route/components/CreateStep4/index.ts | 16 ++ .../components/ResultView/ResultView.tsx | 16 ++ .../Route/components/ResultView/index.ts | 16 ++ .../components/Step1/MatchingRulesView.tsx | 16 ++ src/pages/Route/components/Step1/MetaView.tsx | 16 ++ .../components/Step1/RequestConfigView.tsx | 16 ++ src/pages/Route/components/Step1/index.tsx | 16 ++ .../Step2/HttpHeaderRewriteView.tsx | 16 ++ .../components/Step2/RequestRewriteView.tsx | 16 ++ src/pages/Route/components/Step2/index.tsx | 16 ++ src/pages/Route/constants.ts | 16 ++ src/pages/Route/index.ts | 16 ++ src/pages/Route/locales/en-US.ts | 16 ++ src/pages/Route/locales/zh-CN.ts | 16 ++ src/pages/Route/service.ts | 16 ++ src/pages/Route/transform.ts | 16 ++ src/pages/Route/typing.d.ts | 16 ++ src/pages/SSL/Create.less | 16 ++ src/pages/SSL/Create.tsx | 16 ++ src/pages/SSL/List.tsx | 16 ++ .../SSL/components/CertificateForm/index.tsx | 16 ++ .../components/CertificateUploader/index.tsx | 16 ++ src/pages/SSL/components/Step1/index.tsx | 16 ++ src/pages/SSL/components/Step2/index.tsx | 16 ++ src/pages/SSL/locales/en-US.ts | 16 ++ src/pages/SSL/locales/zh-CN.ts | 16 ++ src/pages/SSL/service.ts | 16 ++ src/pages/SSL/style.less | 16 ++ src/pages/SSL/typing.d.ts | 16 ++ src/pages/Setting/Setting.tsx | 16 ++ src/pages/Setting/index.ts | 16 ++ src/pages/Setting/locales/en-US.ts | 16 ++ src/pages/Setting/locales/zh-CN.ts | 16 ++ src/pages/Setting/service.ts | 16 ++ src/pages/Setting/style.less | 16 ++ src/pages/Setting/typingd.d.ts | 16 ++ src/pages/Upstream/Create.tsx | 16 ++ src/pages/Upstream/List.tsx | 16 ++ src/pages/Upstream/components/Preview.tsx | 16 ++ src/pages/Upstream/components/Step1.tsx | 16 ++ src/pages/Upstream/constants.ts | 16 ++ src/pages/Upstream/index.ts | 16 ++ src/pages/Upstream/locales/en-US.ts | 16 ++ src/pages/Upstream/locales/zh-CN.ts | 16 ++ src/pages/Upstream/service.ts | 16 ++ src/pages/Upstream/transform.ts | 16 ++ src/pages/Upstream/typing.d.ts | 16 ++ src/pages/document.ejs | 25 +- src/service-worker.js | 23 ++ src/services/API.d.ts | 16 ++ src/services/login.ts | 16 ++ src/services/user.ts | 16 ++ src/transforms/global.ts | 16 ++ src/typings.d.ts | 16 ++ tests/PuppeteerEnvironment.js | 16 ++ tests/beforeTest.js | 16 ++ tests/getBrowser.js | 16 ++ tests/run-tests.js | 16 ++ 173 files changed, 3102 insertions(+), 264 deletions(-) create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 LICENSE create mode 100644 NOTICE create mode 100644 licenses/LICENSE-ant-design-pro.txt delete mode 100644 public/home_bg.png delete mode 100644 public/icons/icon-128x128.png delete mode 100644 public/icons/icon-192x192.png delete mode 100644 public/icons/icon-512x512.png delete mode 100644 public/pro_icon.svg diff --git a/.eslintrc.js b/.eslintrc.js index b882c20e87..f8549393c8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ module.exports = { extends: [require.resolve('@umijs/fabric/dist/eslint')], globals: { diff --git a/.prettierrc.js b/.prettierrc.js index 7b597d7891..64d2db1003 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ const fabric = require('@umijs/fabric'); module.exports = { diff --git a/.stylelintrc.js b/.stylelintrc.js index c2030787de..22ebf981d1 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ const fabric = require('@umijs/fabric'); module.exports = { diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..d72bc3b781 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,36 @@ + + +# Table of Contents + +- [1.0.0](#100) + +## 1.0.0 + +This release is mainly to build some basic panels and resolve License issue. + +### Core + +- Dashboard initial. [#1](https://github.com/apache/incubator-apisix-dashboard/pull/1) +- Resolve licence issues. +- Remove unused files from the Dashboard boilerplate. +- Support panel to list, create and modify Route, Consumer, Service, SSL and Upstream. +- Support custom configuration for Plugin dialog. + +[Back to TOC](#table-of-contents) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..573c48b8c9 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,105 @@ + + +_The following is copied for your convenience from . If there's a discrepancy between the two, let us know or submit a PR to fix it._ + +# Code of Conduct + +## Introduction + +This code of conduct applies to all spaces managed by the Apache Software Foundation, including IRC, all public and private mailing lists, issue trackers, wikis, blogs, Twitter, and any other communication channel used by our communities. A code of conduct which is specific to in-person events (ie., conferences) is codified in the published ASF anti-harassment policy. + +We expect this code of conduct to be honored by everyone who participates in the Apache community formally or informally, or claims any affiliation with the Foundation, in any Foundation-related activities and especially when representing the ASF, in any role. + +This code **is not exhaustive or complete**. It serves to distill our common understanding of a collaborative, shared environment and goals. We expect it to be followed in spirit as much as in the letter, so that it can enrich all of us and the technical communities in which we participate. + +## Specific Guidelines + +We strive to: + +1. **Be open.** We invite anyone to participate in our community. We preferably use public methods of communication for project-related messages, unless discussing something sensitive. This applies to messages for help or project-related support, too; not only is a public support request much more likely to result in an answer to a question, it also makes sure that any inadvertent mistakes made by people answering will be more easily detected and corrected. + +2. **Be `empathetic`, welcoming, friendly, and patient.** We work together to resolve conflict, assume good intentions, and do our best to act in an empathetic fashion. We may all experience some frustration from time to time, but we do not allow frustration to turn into a personal attack. A community where people feel uncomfortable or threatened is not a productive one. We should be respectful when dealing with other community members as well as with people outside our community. + +3. **Be collaborative.** Our work will be used by other people, and in turn we will depend on the work of others. When we make something for the benefit of the project, we are willing to explain to others how it works, so that they can build on the work to make it even better. Any decision we make will affect users and colleagues, and we take those consequences seriously when making decisions. + +4. **Be inquisitive.** Nobody knows everything! Asking questions early avoids many problems later, so questions are encouraged, though they may be directed to the appropriate forum. Those who are asked should be responsive and helpful, within the context of our shared goal of improving Apache project code. + +5. **Be careful in the words that we choose.** Whether we are participating as professionals or volunteers, we value professionalism in all interactions, and take responsibility for our own speech. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behaviour are not acceptable. This includes, but is not limited to: + + - Violent threats or language directed against another person. + - Sexist, racist, or otherwise discriminatory jokes and language. + - Posting sexually explicit or violent material. + - Posting (or threatening to post) other people's personally identifying information ("doxing"). + - Sharing private content, such as emails sent privately or non-publicly, or unlogged forums such as IRC channel history. + - Personal insults, especially those using racist or sexist terms. + - Unwelcome sexual attention. + - Excessive or unnecessary profanity. + - Repeated harassment of others. In general, if someone asks you to stop, then stop. + - Advocating for, or encouraging, any of the above behaviour. + +6. **Be concise.** Keep in mind that what you write once will be read by hundreds of persons. Writing a short email means people can understand the conversation as efficiently as possible. Short emails should always strive to be empathetic, welcoming, friendly and patient. When a long explanation is necessary, consider adding a summary.

+ + Try to bring new ideas to a conversation so that each mail adds something unique to the thread, keeping in mind that the rest of the thread still contains the other messages with arguments that have already been made. + + Try to stay on topic, especially in discussions that are already fairly large. + +7. **Step down considerately.** Members of every project come and go. When somebody leaves or disengages from the project they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off. In doing so, they should remain respectful of those who continue to participate in the project and should not misrepresent the project's goals or achievements. Likewise, community members should respect any individual's choice to leave the project.

+ +## Diversity Statement + +Apache welcomes and encourages participation by everyone. We are committed to being a community that everyone feels good about joining. Although we may not be able to satisfy everyone, we will always work to treat everyone well. + +No matter how you identify yourself or how others perceive you: we welcome you. Though no list can hope to be comprehensive, we explicitly honour diversity in: age, culture, ethnicity, genotype, gender identity or expression, language, national origin, neurotype, phenotype, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, subculture and technical ability. + +Though we welcome people fluent in all languages, Apache development is conducted in English. + +Standards for behaviour in the Apache community are detailed in the Code of Conduct above. We expect participants in our community to meet these standards in all their interactions and to help others to do so as well. + +## Reporting Guidelines + +While this code of conduct should be adhered to by participants, we recognize that sometimes people may have a bad day, or be unaware of some of the guidelines in this code of conduct. When that happens, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. However, regardless of whether the message is public or not, it should still adhere to the relevant parts of this code of conduct; in particular, it should not be abusive or disrespectful. + +If you believe someone is violating this code of conduct, you may reply to them and point out this code of conduct. Such messages may be in public or in private, whatever is most appropriate. Assume good faith; it is more likely that participants are unaware of their bad behaviour than that they intentionally try to degrade the quality of the discussion. Should there be difficulties in dealing with the situation, you may report your compliance issues in confidence to either: + +- President of the Apache Software Foundation: Sam Ruby (rubys at intertwingly dot net) + +or one of our volunteers: + +- [Mark Thomas](http://home.apache.org/~markt/coc.html) +- [Joan Touzet](http://home.apache.org/~wohali/) +- [Sharan Foga](http://home.apache.org/~sharan/coc.html) + +If the violation is in documentation or code, for example inappropriate pronoun usage or word choice within official documentation, we ask that people report these privately to the project in question at private@project.apache.org, and, if they have sufficient ability within the project, to resolve or remove the concerning material, being mindful of the perspective of the person originally reporting the issue. + +## End Notes + +This Code defines **empathy** as "a vicarious participation in the emotions, ideas, or opinions of others; the ability to imagine oneself in the condition or predicament of another." **Empathetic** is the adjectival form of empathy. + +This statement thanks the following, on which it draws for content and inspiration: + +- [CouchDB Project Code of conduct](http://couchdb.apache.org/conduct.html) +- [Fedora Project Code of Conduct](http://fedoraproject.org/code-of-conduct) +- [Speak Up! Code of Conduct](http://speakup.io/coc.html) +- [Django Code of Conduct](https://www.djangoproject.com/conduct/) +- [Debian Code of Conduct](http://www.debian.org/vote/2014/vote_002) +- [Twitter Open Source Code of Conduct](https://github.com/twitter/code-of-conduct/blob/master/code-of-conduct.md) +- [Mozilla Code of Conduct/Draft](https://wiki.mozilla.org/Code_of_Conduct/Draft#Conflicts_of_Interest) +- [Python Diversity Appendix](https://www.python.org/community/diversity/) +- [Python Mentors Home Page](http://pythonmentors.com/) diff --git a/Dockerfile b/Dockerfile index c3a6f6c1e2..90d4fde5ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,20 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + # phase-build FROM node:12 as builder diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..a216e9c267 --- /dev/null +++ b/LICENSE @@ -0,0 +1,218 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +======================================================================= +Apache APISIX Dashboard Subcomponents: + +The Apache APISIX Dashboard project contains subcomponents with separate copyright +notices and license terms. Your use of the source code for the these +subcomponents is subject to the terms and conditions of the following +licenses. + +======================================================================== +MIT licenses +======================================================================== + +The following components are provided under the MIT License. See project link for details. +The text of each license is also included at licenses/LICENSE-[project].txt. + + files from ant-design-pro: https://github.com/ant-design/ant-design-pro MIT \ No newline at end of file diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000000..ba0415537e --- /dev/null +++ b/NOTICE @@ -0,0 +1,5 @@ +Apache APISIX +Copyright 2019-2020 The Apache Software Foundation + +This product includes software developed at +The Apache Software Foundation (http://www.apache.org/). \ No newline at end of file diff --git a/README-dashboard.md b/README-dashboard.md index 74f87484ed..b1c8c13814 100644 --- a/README-dashboard.md +++ b/README-dashboard.md @@ -1,3 +1,21 @@ + # READMD for Dashboard This project is initialized with [Ant Design Pro](https://pro.ant.design). Follow is the quick guide for how to use. diff --git a/README.md b/README.md index 97b8f0b43e..3a80faece9 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ + # Apache APISIX Dashboard Dashboard for [Apache APISIX](https://github.com/apache/incubator-apisix-dashboard) diff --git a/api/docker-compose.yml b/api/docker-compose.yml index 79760d7ae4..4f838116d0 100644 --- a/api/docker-compose.yml +++ b/api/docker-compose.yml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# version: "3" services: diff --git a/api/route/ssl_test.go b/api/route/ssl_test.go index a4a2308de7..3952b6bd55 100644 --- a/api/route/ssl_test.go +++ b/api/route/ssl_test.go @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package route import ( diff --git a/api/route/upstream.go b/api/route/upstream.go index ac319a2d4a..0bff0cbc92 100644 --- a/api/route/upstream.go +++ b/api/route/upstream.go @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package route import ( diff --git a/api/service/upstream.go b/api/service/upstream.go index e63edeed96..5c41979220 100644 --- a/api/service/upstream.go +++ b/api/service/upstream.go @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package service import ( diff --git a/compose/README.md b/compose/README.md index 73a117731a..66e83a3577 100644 --- a/compose/README.md +++ b/compose/README.md @@ -1,3 +1,22 @@ + + ## Deploy ```sh diff --git a/compose/apisix_conf/config.yaml b/compose/apisix_conf/config.yaml index bbdc65b95d..014cfc4e4b 100644 --- a/compose/apisix_conf/config.yaml +++ b/compose/apisix_conf/config.yaml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# apisix: node_listen: 9080 # APISIX listening port enable_heartbeat: true diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index c36495bd7c..9e0707e668 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# version: "3" services: diff --git a/compose/gen-config-yaml.sh b/compose/gen-config-yaml.sh index 794b63be2b..d9d07d6f08 100644 --- a/compose/gen-config-yaml.sh +++ b/compose/gen-config-yaml.sh @@ -1,3 +1,20 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + #!/bin/sh export etcd_url='http://192.17.5.10:2379' diff --git a/compose/grafana_conf/provisioning/dashboards/all.yaml b/compose/grafana_conf/provisioning/dashboards/all.yaml index c58cbc61f6..26a9599efe 100644 --- a/compose/grafana_conf/provisioning/dashboards/all.yaml +++ b/compose/grafana_conf/provisioning/dashboards/all.yaml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# apiVersion: 1 providers: diff --git a/compose/grafana_conf/provisioning/datasources/all.yaml b/compose/grafana_conf/provisioning/datasources/all.yaml index 4245eac0e4..3812d4f7b1 100644 --- a/compose/grafana_conf/provisioning/datasources/all.yaml +++ b/compose/grafana_conf/provisioning/datasources/all.yaml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# datasources: - access: 'proxy' editable: true diff --git a/compose/manager_conf/build.sh b/compose/manager_conf/build.sh index efedb1c9fa..03e0db3946 100755 --- a/compose/manager_conf/build.sh +++ b/compose/manager_conf/build.sh @@ -1,3 +1,20 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + #!/bin/sh pwd=`pwd` diff --git a/compose/prometheus_conf/prometheus.yml b/compose/prometheus_conf/prometheus.yml index 0804c81527..73f08e9fe1 100644 --- a/compose/prometheus_conf/prometheus.yml +++ b/compose/prometheus_conf/prometheus.yml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# global: scrape_interval: 15s # By default, scrape targets every 15 seconds. diff --git a/config/config.ts b/config/config.ts index b378773981..e826c76ff8 100644 --- a/config/config.ts +++ b/config/config.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { defineConfig } from 'umi'; import defaultSettings from './defaultSettings'; diff --git a/config/defaultSettings.ts b/config/defaultSettings.ts index 0245a762f1..472afa2455 100644 --- a/config/defaultSettings.ts +++ b/config/defaultSettings.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { Settings as LayoutSettings } from '@ant-design/pro-layout'; export default { diff --git a/config/proxy.ts b/config/proxy.ts index e189b0f91b..7de0befe1c 100644 --- a/config/proxy.ts +++ b/config/proxy.ts @@ -1,9 +1,18 @@ -/** - * 在生产环境 代理是无法生效的,所以这里没有生产环境的配置 - * The agent cannot take effect in the production environment - * so there is no configuration of the production environment - * For details, please see - * https://pro.ant.design/docs/deploy +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ export default { dev: { diff --git a/config/routes.ts b/config/routes.ts index 14bb77bbbc..9851a957e2 100644 --- a/config/routes.ts +++ b/config/routes.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ const routes = [ { path: '/', diff --git a/jest.config.js b/jest.config.js index 4c4eeaf7c8..56d4294ace 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ module.exports = { testURL: 'http://localhost:8000', testEnvironment: './tests/PuppeteerEnvironment', diff --git a/licenses/LICENSE-ant-design-pro.txt b/licenses/LICENSE-ant-design-pro.txt new file mode 100644 index 0000000000..b68fd1b633 --- /dev/null +++ b/licenses/LICENSE-ant-design-pro.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Alipay.inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/mock/notices.ts b/mock/notices.ts index b9e3bf2948..23522efb86 100644 --- a/mock/notices.ts +++ b/mock/notices.ts @@ -1,103 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { Request, Response } from 'express'; const getNotices = (req: Request, res: Response) => { - res.json([ - { - id: '000000001', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', - title: '你收到了 14 份新周报', - datetime: '2017-08-09', - type: 'notification', - }, - { - id: '000000002', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png', - title: '你推荐的 曲妮妮 已通过第三轮面试', - datetime: '2017-08-08', - type: 'notification', - }, - { - id: '000000003', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/kISTdvpyTAhtGxpovNWd.png', - title: '这种模板可以区分多种通知类型', - datetime: '2017-08-07', - read: true, - type: 'notification', - }, - { - id: '000000004', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/GvqBnKhFgObvnSGkDsje.png', - title: '左侧图标用于区分不同的类型', - datetime: '2017-08-07', - type: 'notification', - }, - { - id: '000000005', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png', - title: '内容不要超过两行字,超出时自动截断', - datetime: '2017-08-07', - type: 'notification', - }, - { - id: '000000006', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '曲丽丽 评论了你', - description: '描述信息描述信息描述信息', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000007', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '朱偏右 回复了你', - description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000008', - avatar: 'https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg', - title: '标题', - description: '这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像', - datetime: '2017-08-07', - type: 'message', - clickClose: true, - }, - { - id: '000000009', - title: '任务名称', - description: '任务需要在 2017-01-12 20:00 前启动', - extra: '未开始', - status: 'todo', - type: 'event', - }, - { - id: '000000010', - title: '第三方紧急代码变更', - description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务', - extra: '马上到期', - status: 'urgent', - type: 'event', - }, - { - id: '000000011', - title: '信息安全考试', - description: '指派竹尔于 2017-01-09 前完成更新并发布', - extra: '已耗时 8 天', - status: 'doing', - type: 'event', - }, - { - id: '000000012', - title: 'ABCD 版本发布', - description: '冠霖提交于 2017-01-06,需在 2017-01-07 前完成代码变更任务', - extra: '进行中', - status: 'processing', - type: 'event', - }, - ]); + res.json([]); }; export default { diff --git a/mock/route.ts b/mock/route.ts index 418d10f1ab..7cef9385a6 100644 --- a/mock/route.ts +++ b/mock/route.ts @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { '/api/auth_routes': { - '/form/advanced-form': { authority: ['admin', 'user'] }, + '/form/advanced-form': { authority: ['admin'] }, }, }; diff --git a/mock/user.ts b/mock/user.ts index 24fa3f7fcd..b1aae89d5e 100644 --- a/mock/user.ts +++ b/mock/user.ts @@ -1,154 +1,20 @@ -import { Request, Response } from 'express'; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -function getFakeCaptcha(req: Request, res: Response) { - return res.json('captcha-xxx'); -} -// 代码中会兼容本地 service mock 以及部署站点的静态数据 export default { - // 支持值为 Object 和 Array - 'GET /api/currentUser': { - name: 'Serati Ma', - avatar: 'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png', - userid: '00000001', - email: 'antdesign@alipay.com', - signature: '海纳百川,有容乃大', - title: '交互专家', - group: '蚂蚁金服-某某某事业群-某某平台部-某某技术部-UED', - tags: [ - { - key: '0', - label: '很有想法的', - }, - { - key: '1', - label: '专注设计', - }, - { - key: '2', - label: '辣~', - }, - { - key: '3', - label: '大长腿', - }, - { - key: '4', - label: '川妹子', - }, - { - key: '5', - label: '海纳百川', - }, - ], - notifyCount: 12, - unreadCount: 11, - country: 'China', - geographic: { - province: { - label: '浙江省', - key: '330000', - }, - city: { - label: '杭州市', - key: '330100', - }, - }, - address: '西湖区工专路 77 号', - phone: '0752-268888888', - }, - // GET POST 可省略 - 'GET /api/users': [ - { - key: '1', - name: 'John Brown', - age: 32, - address: 'New York No. 1 Lake Park', - }, - { - key: '2', - name: 'Jim Green', - age: 42, - address: 'London No. 1 Lake Park', - }, - { - key: '3', - name: 'Joe Black', - age: 32, - address: 'Sidney No. 1 Lake Park', - }, - ], - 'POST /api/login/account': (req: Request, res: Response) => { - const { password, userName, type } = req.body; - if (password === 'ant.design' && userName === 'admin') { - res.send({ - status: 'ok', - type, - currentAuthority: 'admin', - }); - return; - } - if (password === 'ant.design' && userName === 'user') { - res.send({ - status: 'ok', - type, - currentAuthority: 'user', - }); - return; - } - if (type === 'mobile') { - res.send({ - status: 'ok', - type, - currentAuthority: 'admin', - }); - return; - } - - res.send({ - status: 'error', - type, - currentAuthority: 'guest', - }); - }, - 'POST /api/register': (req: Request, res: Response) => { - res.send({ status: 'ok', currentAuthority: 'user' }); - }, - 'GET /api/500': (req: Request, res: Response) => { - res.status(500).send({ - timestamp: 1513932555104, - status: 500, - error: 'error', - message: 'error', - path: '/base/category/list', - }); - }, - 'GET /api/404': (req: Request, res: Response) => { - res.status(404).send({ - timestamp: 1513932643431, - status: 404, - error: 'Not Found', - message: 'No message available', - path: '/base/category/list/2121212', - }); - }, - 'GET /api/403': (req: Request, res: Response) => { - res.status(403).send({ - timestamp: 1513932555104, - status: 403, - error: 'Unauthorized', - message: 'Unauthorized', - path: '/base/category/list', - }); - }, - 'GET /api/401': (req: Request, res: Response) => { - res.status(401).send({ - timestamp: 1513932555104, - status: 401, - error: 'Unauthorized', - message: 'Unauthorized', - path: '/base/category/list', - }); - }, - - 'GET /api/login/captcha': getFakeCaptcha, + 'GET /api/currentUser': {}, }; diff --git a/netlify.toml b/netlify.toml index 5236d3b61d..cb87419ccc 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,3 +1,19 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# [build] publish = "dist/" diff --git a/package.json b/package.json index f4a8a302c7..3ef7703780 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "apisix-dashboard", - "version": "1.1.0", + "version": "1.1.1", "private": true, - "description": "Dashboard for APISIX", + "description": "Dashboard for Apache APISIX", "scripts": { "analyze": "cross-env ANALYZE=1 umi build", "build": "umi build", @@ -31,6 +31,7 @@ "test:component": "umi test ./src/components", "tsc": "tsc" }, + "license": "Apache-2.0", "husky": { "hooks": { "commit-msg": "node scripts/verifyCommit.js", @@ -106,7 +107,6 @@ "prettier": "^2.0.1", "pro-download": "1.0.1", "puppeteer-core": "^4.0.1", - "react-helmet-async": "1.0.6", "stylelint": "^13.0.0" }, "engines": { diff --git a/public/home_bg.png b/public/home_bg.png deleted file mode 100644 index 7c92a4bef248fd9a6cba50e72c5a641ee4cdca2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203330 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¬4*_ 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 z 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 g>MQXTm2T=TNap`^ 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%0DM!Hp}{;&%I4T^x7n$3v;!}60cbAOLzGYwk(SO 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 diff --git a/public/icons/icon-128x128.png b/public/icons/icon-128x128.png deleted file mode 100644 index 48d0e2339a60a637b94319c65e8654289b4f4b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1329 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

*C7T$?5!b= z&nPVm(<;~Sw_*kJlio|*qhI8#F?9y#@jvQ4Y?j2~r_a^)YoQ-co4WFOwF)i5mFnrV zp3rz^`K|nrI`guQ$X^%JuCI5qSS(}Tc|%+~o}P6dC={o1Q&<)3lnFnXE=l2Po$K4W zYZ0|2<3Cp|&)NE>;p=Muwg#BLXuboTJ(mwtjLbtdOE_A4n^}l29p9@>4vpS+t*^qG zb2Uo-W$@vKeR}iztf6tJTUh8=^kh_EBe^3f?1b(p_oBq&dpqW$pAyBB**bIt4BhwK zX02JE@mc}FExq0q+5_8B#EP&@;6-lx4t~)@$HBEBXnIqX0E$mhb$(} zt|vYUzekLn0SQ;Cd)J1 zXF3gv$u52+$>oQVvh7DxPpKeWD4yJgdWQQ`D#($Z=j%Df!iAxvR)-y7Ie5nI39+zG z4a3_4mE;SBh@MK8p%(n|yGj>Ao>j51ETLI#vuUt#g|%FDZG}&kbEb(|*9!RyL&U?| zvNnv+oEL_*R{Mw_;x+O`vNWUXL6>@M)sQr_lmlng7?sCaDH0YaGf%+R1ZM}9#$j$3 zi}N01^7uoRgvG74Fxi{415}={tg=gDHuqwR$1?9qlK<#~ zLG@an>_SlEY6+k8PD+S)C&NU7!~`$+Sin{JS2aLn_Jm#q|8H%OnLqt&n-f~C7KW9K z>QxTE1D!cV+(E>-8N#r>Aw98T*8=odDM_y2&?=ag7-=Rj&p%xvU zq=o{%T2@T(b@VqinV#`~IN4t3^z$HE=3~ZiDQ=xP6Gt)g;q1Wv2N&CBx=Ndw5 z6U*fS@;@VBF^MGsyag~+Eq&2UZ@5SG$!SM2ckBL!E1lBg>*t^{Lqn=cK^-Rhc#S(% zuAqbI(^+PqN#)t&5xr~v&*Y$qZ$3Yz)nRe`ZZcJUU8hd=)9$7 z6n-k7p||Esq}igp(IoxtD&_5A!OwcTvM3p-HHJGcVh|>N13O;!W%RXd{Y6@BEp1Jz zHCH!~H~lR%<3E0b>}>_dD6Ef8r_)LSp}O5L`DerkKk|Jc@n6*BmU&r@TKhG$-x=>`wv*Vj%M=6<7!P7~3+)?^D>AA~&^F+{mzBAMLh zuTiItS}IqcPpj-t;W15ahnBV9rHnrShN-@GCY+EyXV6Gass&4cM~^;F?z{3+SXKe7 zX8rBU7Fc!Kr5M!K@lDd)Bl)VMR)yb6;AHxpH?Q1Bx14XQy~`&ggyC$4u>az;q|C7G ziTI-A3y9BZbxP7rW4_G!ju{^(NOZstl}tvVR+j8_B`~)2cWn2~;amI9u@_9oSC+Xc z_+DcYbc7S~MIl7Fjk6qEWXDo6>n5U0O4P_k15Z^c%P@0?*Oaj8%BIU*uy|Vgi@eqH zPKZqrW$wXWQ9=QoQrY4VBCFzACRJhEv+U(FOmx1_uwVirtukLVbyF&%?xKU6D>Yot zj6ZW-1$@|ASwJlAu1;!K9!5uPdov-?7RK^;L%bs%6z9abcvP!i20^{1|g}`{&O=}R+#D;J+z#Fj(x6k%xY0!5_DrzSsTCn;pu^6 zIZV~_c4b?yxFutJZTc`BT4+(N21dx%Bxx5_=*+^Gl`PCmvS7QnNZUr>RqS>smtAo7 z%1fV4h6YI+Y2X$?ZuQmeFj!XWfPJxAc1<0;;3C|?V?=BITB{AnSkYW;+Vbas9ODwo zC?uf|l|KjLdt@iP*&!CGbh&OT1l3&s3RD|7knGOc{T%o)WLqmqSnTE5-M^OKN+8ct1C(XwQJJg%OozV)cJ^w# zVxbg~z7OMwn+eEPaBRR0KIDX14Kb^G-Strc8r6QmoINnF;F1;|U5n3%rdT9(U0dcP zI*}ZU>2wFp1u1KmK2cwSwk|=oZ8?l*@yIPBD3BPN(BINzFh#VAKBpVxZ71*JgwpWXLZfS%KkGa_tQn0bX5)h8 z6Q7LGdb=)NQ}a}>SD{8~!ga|bE*aS_Nxg_+ojhQ1{b@sVzaX)Z{rV-1%Qa*ioSy65 zb4ke$#&Mf>xuBg{&aCGNbhbOGbN4XT4?qQpRW^!2z;9eCH6fH7)+qpWe;n~*tCIq= z&w&jc@_tBWRiS3IyovPwt~fl#1Z-%o%T_B%)sO*FrOIkz-1r$#mr+&N2J06a?u1<~QB}EoR?wnU)c32Ew0(EP^w=K@< zM;7MeoWTwa-$09MwD#{-p5K@kGTM6q@*9`~NBz#snAQt$W%fZr`qk|A%IEM4|B(?x zOpx+g1-*Q?a%JHpKf|Cs>MCBj^^EmKDb?*U1(_uF({whek67oi^wL)^XH3=`&u$U^ z*K&AEIc$ISs)O2r7emK9XW_i^6Jxw-Ug6tIn{3gqAYG+j_U1<)>HovW7l7Z>STIh4 z7OH$pfQM^<6ZPN`%FY^PFKzq89tYsIi0B \ No newline at end of file diff --git a/src/access.ts b/src/access.ts index 207bc4b905..cdda4f574d 100644 --- a/src/access.ts +++ b/src/access.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default function (initialState: { currentUser?: API.CurrentUser | undefined }) { const { currentUser } = initialState || {}; return { diff --git a/src/app.tsx b/src/app.tsx index 8f427ede25..16d31cc7d1 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { RequestConfig, history } from 'umi'; import { diff --git a/src/components/ActionBar/ActionBar.tsx b/src/components/ActionBar/ActionBar.tsx index 9087d7a518..9912d45124 100644 --- a/src/components/ActionBar/ActionBar.tsx +++ b/src/components/ActionBar/ActionBar.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { CSSProperties } from 'react'; import { Row, Col, Button } from 'antd'; import { useIntl } from 'umi'; diff --git a/src/components/ActionBar/index.ts b/src/components/ActionBar/index.ts index 69ad8f681e..2621d282fb 100644 --- a/src/components/ActionBar/index.ts +++ b/src/components/ActionBar/index.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './ActionBar'; export { default as ActionBarZhCN } from './locales/zh-CN'; export { default as ActionBarEnUS } from './locales/en-US'; diff --git a/src/components/ActionBar/locales/en-US.ts b/src/components/ActionBar/locales/en-US.ts index 0b810e3d84..63f961a3de 100644 --- a/src/components/ActionBar/locales/en-US.ts +++ b/src/components/ActionBar/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'actionbar.last.step': 'Last Step', 'actionbar.next.step': 'Next Step', diff --git a/src/components/ActionBar/locales/zh-CN.ts b/src/components/ActionBar/locales/zh-CN.ts index 3e4e233544..271f48942c 100644 --- a/src/components/ActionBar/locales/zh-CN.ts +++ b/src/components/ActionBar/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'actionbar.last.step': '上一步', 'actionbar.next.step': '下一步', diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx index 0f6648bef7..10ea6472af 100644 --- a/src/components/Footer/index.tsx +++ b/src/components/Footer/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { GithubOutlined } from '@ant-design/icons'; import { DefaultFooter } from '@ant-design/pro-layout'; diff --git a/src/components/HeaderDropdown/index.less b/src/components/HeaderDropdown/index.less index 004b53ebd4..e57ce5ecb9 100644 --- a/src/components/HeaderDropdown/index.less +++ b/src/components/HeaderDropdown/index.less @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ @import '~antd/es/style/themes/default.less'; .container > * { diff --git a/src/components/HeaderDropdown/index.tsx b/src/components/HeaderDropdown/index.tsx index cc60727df3..f54f65bb42 100644 --- a/src/components/HeaderDropdown/index.tsx +++ b/src/components/HeaderDropdown/index.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { DropDownProps } from 'antd/es/dropdown'; import { Dropdown } from 'antd'; import React from 'react'; diff --git a/src/components/NoticeIcon/NoticeList.less b/src/components/NoticeIcon/NoticeList.less index 1aba6109ff..695693a0e7 100755 --- a/src/components/NoticeIcon/NoticeList.less +++ b/src/components/NoticeIcon/NoticeList.less @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ @import '~antd/es/style/themes/default.less'; .list { diff --git a/src/components/NoticeIcon/NoticeList.tsx b/src/components/NoticeIcon/NoticeList.tsx index 8d00be221e..f7ea112a19 100644 --- a/src/components/NoticeIcon/NoticeList.tsx +++ b/src/components/NoticeIcon/NoticeList.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { Avatar, List } from 'antd'; import React from 'react'; @@ -46,7 +69,7 @@ const NoticeList: React.SFC = ({ } return (

- + className={styles.list} dataSource={data} renderItem={(item, i) => { diff --git a/src/components/NoticeIcon/index.less b/src/components/NoticeIcon/index.less index 650ccd2ddd..6e62ea5276 100644 --- a/src/components/NoticeIcon/index.less +++ b/src/components/NoticeIcon/index.less @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ @import '~antd/es/style/themes/default.less'; .popover { diff --git a/src/components/NoticeIcon/index.tsx b/src/components/NoticeIcon/index.tsx index 0df406176d..ac89b4687c 100644 --- a/src/components/NoticeIcon/index.tsx +++ b/src/components/NoticeIcon/index.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { BellOutlined } from '@ant-design/icons'; import { Badge, Spin, Tabs } from 'antd'; import useMergeValue from 'use-merge-value'; @@ -66,8 +89,8 @@ const NoticeIcon: React.FC & { onViewMore={(event): void => onViewMore && onViewMore(child.props, event)} showClear={showClear} showViewMore={showViewMore} - title={title} {...child.props} + title={title || child.props.title} /> , ); diff --git a/src/components/PageLoading/index.tsx b/src/components/PageLoading/index.tsx index 096c58fa0e..c5b8fccf84 100644 --- a/src/components/PageLoading/index.tsx +++ b/src/components/PageLoading/index.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { PageLoading } from '@ant-design/pro-layout'; // loading components from code split diff --git a/src/components/PanelSection/index.tsx b/src/components/PanelSection/index.tsx index 153942cd93..3fa59829a0 100644 --- a/src/components/PanelSection/index.tsx +++ b/src/components/PanelSection/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { CSSProperties } from 'react'; import { Divider } from 'antd'; diff --git a/src/components/PluginForm/PluginForm.tsx b/src/components/PluginForm/PluginForm.tsx index 5b69becd9c..184e1475d7 100644 --- a/src/components/PluginForm/PluginForm.tsx +++ b/src/components/PluginForm/PluginForm.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { Form, Input, Switch, Select, InputNumber, Button } from 'antd'; import { PlusOutlined, MinusCircleOutlined } from '@ant-design/icons'; diff --git a/src/components/PluginForm/README.md b/src/components/PluginForm/README.md index 68d46861a0..12a6f2dd7e 100644 --- a/src/components/PluginForm/README.md +++ b/src/components/PluginForm/README.md @@ -1,3 +1,21 @@ + # PluginForm > The PluginForm component aims to build UI according to the plugin schema. diff --git a/src/components/PluginForm/data.ts b/src/components/PluginForm/data.ts index d8dd6e352b..b7c3259113 100644 --- a/src/components/PluginForm/data.ts +++ b/src/components/PluginForm/data.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const PLUGIN_MAPPER_SOURCE: { [name: string]: PluginForm.PluginMapperItem } = { 'limit-req': { category: 'Limit', diff --git a/src/components/PluginForm/index.ts b/src/components/PluginForm/index.ts index 8770cd6626..ff05061b47 100644 --- a/src/components/PluginForm/index.ts +++ b/src/components/PluginForm/index.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './PluginForm'; export { default as PluginFormZhCN } from './locales/zh-CN'; export { default as PluginFormEnUS } from './locales/en-US'; diff --git a/src/components/PluginForm/locales/en-US.ts b/src/components/PluginForm/locales/en-US.ts index 4f19e6d538..722c25a9eb 100644 --- a/src/components/PluginForm/locales/en-US.ts +++ b/src/components/PluginForm/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'PluginForm.plugin.limit-conn.desc': '限制并发连接数', 'PluginForm.plugin.limit-conn.property.conn': 'conn', diff --git a/src/components/PluginForm/locales/zh-CN.ts b/src/components/PluginForm/locales/zh-CN.ts index 4f19e6d538..722c25a9eb 100644 --- a/src/components/PluginForm/locales/zh-CN.ts +++ b/src/components/PluginForm/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'PluginForm.plugin.limit-conn.desc': '限制并发连接数', 'PluginForm.plugin.limit-conn.property.conn': 'conn', diff --git a/src/components/PluginForm/service.ts b/src/components/PluginForm/service.ts index a688e9c7e6..89388b6f2f 100644 --- a/src/components/PluginForm/service.ts +++ b/src/components/PluginForm/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; import { transformSchemaFromAPI } from './transformer'; diff --git a/src/components/PluginForm/transformer.ts b/src/components/PluginForm/transformer.ts index dddbac5827..031da2fce9 100644 --- a/src/components/PluginForm/transformer.ts +++ b/src/components/PluginForm/transformer.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { v4 as uuidv4 } from 'uuid'; import { Rule } from 'antd/es/form'; diff --git a/src/components/PluginForm/typing.d.ts b/src/components/PluginForm/typing.d.ts index dbc106ba60..caf6e99aeb 100644 --- a/src/components/PluginForm/typing.d.ts +++ b/src/components/PluginForm/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace PluginForm { interface Props { name?: string; diff --git a/src/components/PluginModal/index.tsx b/src/components/PluginModal/index.tsx index 906fc2b339..fbd8bed577 100644 --- a/src/components/PluginModal/index.tsx +++ b/src/components/PluginModal/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Modal, Form } from 'antd'; import { useIntl } from 'umi'; diff --git a/src/components/PluginPage/PluginCard.tsx b/src/components/PluginPage/PluginCard.tsx index bcbc12e90e..ae98731153 100644 --- a/src/components/PluginPage/PluginCard.tsx +++ b/src/components/PluginPage/PluginCard.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Card } from 'antd'; import { CardProps } from 'antd/lib/card'; diff --git a/src/components/PluginPage/PluginDrawer.tsx b/src/components/PluginPage/PluginDrawer.tsx index 5df4fb33a0..2f855947f0 100644 --- a/src/components/PluginPage/PluginDrawer.tsx +++ b/src/components/PluginPage/PluginDrawer.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { Fragment } from 'react'; import { Drawer, Button } from 'antd'; import { withTheme, FormProps } from '@rjsf/core'; @@ -28,7 +44,6 @@ const PluginDrawer: React.FC = ({ onClose, onFinish, }) => { - const { formatMessage } = useIntl(); const PluginForm = withTheme(AntDTheme); diff --git a/src/components/PluginPage/PluginPage.tsx b/src/components/PluginPage/PluginPage.tsx index 1dcaa884b8..6bcc0e111b 100644 --- a/src/components/PluginPage/PluginPage.tsx +++ b/src/components/PluginPage/PluginPage.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { LinkOutlined, SettingOutlined } from '@ant-design/icons'; import { omit } from 'lodash'; diff --git a/src/components/PluginPage/data.ts b/src/components/PluginPage/data.ts index e56149fad0..b61190a9b0 100644 --- a/src/components/PluginPage/data.ts +++ b/src/components/PluginPage/data.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const PLUGIN_MAPPER_SOURCE: { [name: string]: PluginPage.PluginMapperItem } = { 'limit-req': { category: 'Limit', diff --git a/src/components/PluginPage/index.ts b/src/components/PluginPage/index.ts index 70c319455c..7c7bd6462a 100644 --- a/src/components/PluginPage/index.ts +++ b/src/components/PluginPage/index.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './PluginPage'; export { default as PluginCard } from './PluginCard'; export { default as PluginDrawer } from './PluginDrawer'; diff --git a/src/components/PluginPage/locales/en-US.ts b/src/components/PluginPage/locales/en-US.ts index c5e57ddcc2..3efcf00bc4 100644 --- a/src/components/PluginPage/locales/en-US.ts +++ b/src/components/PluginPage/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'PluginPage.card.limit-conn.desc': 'Limit the number of concurrent connections', 'PluginPage.card.limit-conn.property.conn': 'conn', diff --git a/src/components/PluginPage/locales/zh-CN.ts b/src/components/PluginPage/locales/zh-CN.ts index 548132abb2..810cca2113 100644 --- a/src/components/PluginPage/locales/zh-CN.ts +++ b/src/components/PluginPage/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'PluginPage.card.limit-conn.desc': '限制并发连接数', 'PluginPage.card.limit-conn.property.conn': 'conn', diff --git a/src/components/PluginPage/service.ts b/src/components/PluginPage/service.ts index e644ba259d..9315c63ecc 100644 --- a/src/components/PluginPage/service.ts +++ b/src/components/PluginPage/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; import { JSONSchema7 } from 'json-schema'; diff --git a/src/components/PluginPage/typing.d.ts b/src/components/PluginPage/typing.d.ts index c48ecf0d24..bd3beb6713 100644 --- a/src/components/PluginPage/typing.d.ts +++ b/src/components/PluginPage/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace PluginPage { type PluginCategory = 'Security' | 'Limit' | 'Log' | 'Metric' | 'Other'; diff --git a/src/components/RightContent/AvatarDropdown.tsx b/src/components/RightContent/AvatarDropdown.tsx index 9f3a674f9f..b3fbf9d91e 100644 --- a/src/components/RightContent/AvatarDropdown.tsx +++ b/src/components/RightContent/AvatarDropdown.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import React, { useCallback } from 'react'; import { SettingOutlined, UserOutlined, SettingFilled } from '@ant-design/icons'; import { Avatar, Menu, Spin } from 'antd'; diff --git a/src/components/RightContent/index.less b/src/components/RightContent/index.less index ef2549e069..c215e82491 100644 --- a/src/components/RightContent/index.less +++ b/src/components/RightContent/index.less @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ @import '~antd/es/style/themes/default.less'; @pro-header-hover-bg: rgba(0, 0, 0, 0.025); diff --git a/src/components/RightContent/index.tsx b/src/components/RightContent/index.tsx index f54e5b7505..858ffd27ff 100644 --- a/src/components/RightContent/index.tsx +++ b/src/components/RightContent/index.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { Tooltip, Tag, Space } from 'antd'; import { QuestionCircleOutlined } from '@ant-design/icons'; import React from 'react'; diff --git a/src/constants.ts b/src/constants.ts index 0954585f25..6e95a554ce 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const codeMessage = { 200: '服务器成功返回请求的数据。', 201: '新建或修改数据成功。', diff --git a/src/e2e/__mocks__/antd-pro-merge-less.js b/src/e2e/__mocks__/antd-pro-merge-less.js index f237ddf58e..510a0f2a1e 100644 --- a/src/e2e/__mocks__/antd-pro-merge-less.js +++ b/src/e2e/__mocks__/antd-pro-merge-less.js @@ -1 +1,24 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ export default undefined; diff --git a/src/e2e/baseLayout.e2e.js b/src/e2e/baseLayout.e2e.js index f328adac1f..f863fea4db 100644 --- a/src/e2e/baseLayout.e2e.js +++ b/src/e2e/baseLayout.e2e.js @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ const { uniq } = require('lodash'); const RouterConfig = require('../../config/config').default.routes; diff --git a/src/global.less b/src/global.less index f38a2673c0..12cde2b67b 100644 --- a/src/global.less +++ b/src/global.less @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @import '~antd/es/style/themes/default.less'; html, diff --git a/src/global.tsx b/src/global.tsx index f7620c4e85..30ed910892 100644 --- a/src/global.tsx +++ b/src/global.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { Button, message, notification } from 'antd'; import React from 'react'; diff --git a/src/helpers.tsx b/src/helpers.tsx index b25cff3674..0b2ea1fd29 100644 --- a/src/helpers.tsx +++ b/src/helpers.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { notification } from 'antd'; import { MenuDataItem } from '@ant-design/pro-layout'; diff --git a/src/iconfont.ts b/src/iconfont.ts index a1942c2e76..df1b5077d3 100644 --- a/src/iconfont.ts +++ b/src/iconfont.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { createFromIconfontCN } from '@ant-design/icons'; // NOTE: 增加新图标时,请访问 https://www.iconfont.cn/manage/index 进行图标管理 diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts index e11a29fd38..ca1da9542e 100644 --- a/src/locales/en-US.ts +++ b/src/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { PluginPageEnUS } from '@/components/PluginPage'; import { ActionBarEnUS } from '@/components/ActionBar'; diff --git a/src/locales/en-US/component.ts b/src/locales/en-US/component.ts index 9a7fc5dccf..57f9e5da45 100644 --- a/src/locales/en-US/component.ts +++ b/src/locales/en-US/component.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'component.tagSelect.expand': 'Expand', 'component.tagSelect.collapse': 'Collapse', diff --git a/src/locales/en-US/globalHeader.ts b/src/locales/en-US/globalHeader.ts index 60b6d4ec2d..362c376a1c 100644 --- a/src/locales/en-US/globalHeader.ts +++ b/src/locales/en-US/globalHeader.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'component.globalHeader.search': 'Search', 'component.globalHeader.search.example1': 'Search example 1', diff --git a/src/locales/en-US/menu.ts b/src/locales/en-US/menu.ts index 1d43bab12a..0528b97847 100644 --- a/src/locales/en-US/menu.ts +++ b/src/locales/en-US/menu.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'menu.more-blocks': 'More Blocks', 'menu.home': 'Home', diff --git a/src/locales/en-US/pwa.ts b/src/locales/en-US/pwa.ts index ed8d199ead..ed5a925432 100644 --- a/src/locales/en-US/pwa.ts +++ b/src/locales/en-US/pwa.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.pwa.offline': 'You are offline now', 'app.pwa.serviceworker.updated': 'New content is available', diff --git a/src/locales/en-US/setting.ts b/src/locales/en-US/setting.ts index b6ce2cffdb..d45bf16d2d 100644 --- a/src/locales/en-US/setting.ts +++ b/src/locales/en-US/setting.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.settings.admin-api': 'Admin API Config', 'app.settings.item.baseURL': 'API base URL', diff --git a/src/locales/en-US/settingDrawer.ts b/src/locales/en-US/settingDrawer.ts index a644905e75..4e2401d722 100644 --- a/src/locales/en-US/settingDrawer.ts +++ b/src/locales/en-US/settingDrawer.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.setting.pagestyle': 'Page style setting', 'app.setting.pagestyle.dark': 'Dark style', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index acd8d0cca2..d79d72539a 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { PluginPageZhCN } from '@/components/PluginPage'; import { ActionBarZhCN } from '@/components/ActionBar'; diff --git a/src/locales/zh-CN/component.ts b/src/locales/zh-CN/component.ts index 048190e0bb..51ec3187bf 100644 --- a/src/locales/zh-CN/component.ts +++ b/src/locales/zh-CN/component.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'component.tagSelect.expand': '展开', 'component.tagSelect.collapse': '收起', diff --git a/src/locales/zh-CN/globalHeader.ts b/src/locales/zh-CN/globalHeader.ts index 9fd66a5875..b1ce8e9fe0 100644 --- a/src/locales/zh-CN/globalHeader.ts +++ b/src/locales/zh-CN/globalHeader.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'component.globalHeader.search': '站内搜索', 'component.globalHeader.search.example1': '搜索提示一', diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts index f4a637603a..df0fbcaacb 100644 --- a/src/locales/zh-CN/menu.ts +++ b/src/locales/zh-CN/menu.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'menu.more-blocks': '更多区块', 'menu.home': '首页', diff --git a/src/locales/zh-CN/pwa.ts b/src/locales/zh-CN/pwa.ts index e9504849e7..ddc3f0ced2 100644 --- a/src/locales/zh-CN/pwa.ts +++ b/src/locales/zh-CN/pwa.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.pwa.offline': '当前处于离线状态', 'app.pwa.serviceworker.updated': '有新内容', diff --git a/src/locales/zh-CN/setting.ts b/src/locales/zh-CN/setting.ts index 43f198e40f..40127b7b26 100644 --- a/src/locales/zh-CN/setting.ts +++ b/src/locales/zh-CN/setting.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.settings.admin-api': '管理 API 配置', 'app.settings.item.baseURL': 'API 基础地址', diff --git a/src/locales/zh-CN/settingDrawer.ts b/src/locales/zh-CN/settingDrawer.ts index 15685a4055..ce7d586268 100644 --- a/src/locales/zh-CN/settingDrawer.ts +++ b/src/locales/zh-CN/settingDrawer.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'app.setting.pagestyle': '整体风格设置', 'app.setting.pagestyle.dark': '暗色菜单风格', diff --git a/src/pages/404.tsx b/src/pages/404.tsx index 5b2993457e..53ebb25e8d 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -1,3 +1,26 @@ +/* +* MIT License + +* Copyright (c) 2019 Alipay.inc + +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: + +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. + +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +*/ import { Button, Result } from 'antd'; import React from 'react'; import { history } from 'umi'; diff --git a/src/pages/Consumer/Create.tsx b/src/pages/Consumer/Create.tsx index aef63116ce..32f816bf4c 100644 --- a/src/pages/Consumer/Create.tsx +++ b/src/pages/Consumer/Create.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import { Card, Steps, notification, Form } from 'antd'; diff --git a/src/pages/Consumer/List.tsx b/src/pages/Consumer/List.tsx index 772e938498..278c4ea13b 100644 --- a/src/pages/Consumer/List.tsx +++ b/src/pages/Consumer/List.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useRef, useState } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; diff --git a/src/pages/Consumer/components/Preview.tsx b/src/pages/Consumer/components/Preview.tsx index db930f224e..e580bd7252 100644 --- a/src/pages/Consumer/components/Preview.tsx +++ b/src/pages/Consumer/components/Preview.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { FormInstance } from 'antd/lib/form'; diff --git a/src/pages/Consumer/components/Step1.tsx b/src/pages/Consumer/components/Step1.tsx index 5812fce780..7b92e1f4b7 100644 --- a/src/pages/Consumer/components/Step1.tsx +++ b/src/pages/Consumer/components/Step1.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Form, Input } from 'antd'; import { FormInstance } from 'antd/lib/form'; diff --git a/src/pages/Consumer/index.ts b/src/pages/Consumer/index.ts index 4d9cf305bc..d31de48df1 100644 --- a/src/pages/Consumer/index.ts +++ b/src/pages/Consumer/index.ts @@ -1,2 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as ConsumerZhCN } from './locales/zh-CN'; export { default as ConsumerEnUS } from './locales/en-US'; diff --git a/src/pages/Consumer/locales/en-US.ts b/src/pages/Consumer/locales/en-US.ts index fc199e58df..a1f49a4bd1 100644 --- a/src/pages/Consumer/locales/en-US.ts +++ b/src/pages/Consumer/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'consumer.step.username': 'Username', 'consumer.step.username.rule': 'Maximum length is 100, only letters, numbers and _ are supported, and can only begin with letters', diff --git a/src/pages/Consumer/locales/zh-CN.ts b/src/pages/Consumer/locales/zh-CN.ts index fedcf6ff74..6cd40427e4 100644 --- a/src/pages/Consumer/locales/zh-CN.ts +++ b/src/pages/Consumer/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'consumer.step.username': '用户名', 'consumer.step.username.rule': '最大长度100,仅支持字母、数字和 _ ,且只能以字母开头', diff --git a/src/pages/Consumer/service.ts b/src/pages/Consumer/service.ts index d924a95eab..801d162c9e 100644 --- a/src/pages/Consumer/service.ts +++ b/src/pages/Consumer/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; export const fetchList = ({ current = 1, pageSize = 10 }, search: string) => diff --git a/src/pages/Consumer/typing.d.ts b/src/pages/Consumer/typing.d.ts index 093bf227d4..bf1d314829 100644 --- a/src/pages/Consumer/typing.d.ts +++ b/src/pages/Consumer/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace ConsumerModule { type Entity = { username: string; diff --git a/src/pages/Metrics/Metrics.tsx b/src/pages/Metrics/Metrics.tsx index b3d8af3dfd..f288a9bd7b 100644 --- a/src/pages/Metrics/Metrics.tsx +++ b/src/pages/Metrics/Metrics.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; import { Empty, Button, Card } from 'antd'; diff --git a/src/pages/Metrics/index.ts b/src/pages/Metrics/index.ts index 318581449b..f721fee134 100644 --- a/src/pages/Metrics/index.ts +++ b/src/pages/Metrics/index.ts @@ -1,2 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './Metrics'; diff --git a/src/pages/Metrics/locales/en-US.ts b/src/pages/Metrics/locales/en-US.ts index e01792cea6..b673952567 100644 --- a/src/pages/Metrics/locales/en-US.ts +++ b/src/pages/Metrics/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'metrics.monitor': 'Monitor', 'metrics.grafana.not.config': 'You have not configured Grafana', diff --git a/src/pages/Metrics/locales/zh-CN.ts b/src/pages/Metrics/locales/zh-CN.ts index 5a9c91b261..fd60f35c72 100644 --- a/src/pages/Metrics/locales/zh-CN.ts +++ b/src/pages/Metrics/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'metrics.monitor': '监控', 'metrics.grafana.not.config': '您还未配置 Grafana', diff --git a/src/pages/Metrics/service.ts b/src/pages/Metrics/service.ts index cfecce873d..40f053329c 100644 --- a/src/pages/Metrics/service.ts +++ b/src/pages/Metrics/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const getGrafanaURL = (): Promise => new Promise((resolve) => { resolve(localStorage.getItem('GLOBAL_SETTING_GRAFANA_URL') || ''); diff --git a/src/pages/Route/Create.less b/src/pages/Route/Create.less index 8d1eb14409..14ad36a869 100644 --- a/src/pages/Route/Create.less +++ b/src/pages/Route/Create.less @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @import '~antd/es/style/themes/default.less'; .card { diff --git a/src/pages/Route/Create.tsx b/src/pages/Route/Create.tsx index 70eade37fd..e628ed2648 100644 --- a/src/pages/Route/Create.tsx +++ b/src/pages/Route/Create.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { Card, Steps, Form } from 'antd'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; diff --git a/src/pages/Route/List.tsx b/src/pages/Route/List.tsx index 3fecff61ea..49a0975e12 100644 --- a/src/pages/Route/List.tsx +++ b/src/pages/Route/List.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useRef, useState } from 'react'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; diff --git a/src/pages/Route/components/CreateStep4/CreateStep4.tsx b/src/pages/Route/components/CreateStep4/CreateStep4.tsx index dc3131a8e4..a4b0f2c64a 100644 --- a/src/pages/Route/components/CreateStep4/CreateStep4.tsx +++ b/src/pages/Route/components/CreateStep4/CreateStep4.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { FormInstance } from 'antd/lib/form'; import { useIntl } from 'umi'; diff --git a/src/pages/Route/components/CreateStep4/index.ts b/src/pages/Route/components/CreateStep4/index.ts index b9b39e1b0c..d26fa37ea2 100644 --- a/src/pages/Route/components/CreateStep4/index.ts +++ b/src/pages/Route/components/CreateStep4/index.ts @@ -1 +1,17 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './CreateStep4'; diff --git a/src/pages/Route/components/ResultView/ResultView.tsx b/src/pages/Route/components/ResultView/ResultView.tsx index 784ab0c272..3346e2c8f8 100644 --- a/src/pages/Route/components/ResultView/ResultView.tsx +++ b/src/pages/Route/components/ResultView/ResultView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Result, Button } from 'antd'; import { history, useIntl } from 'umi'; diff --git a/src/pages/Route/components/ResultView/index.ts b/src/pages/Route/components/ResultView/index.ts index 94e7334179..b1a566c4ff 100644 --- a/src/pages/Route/components/ResultView/index.ts +++ b/src/pages/Route/components/ResultView/index.ts @@ -1 +1,17 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './ResultView'; diff --git a/src/pages/Route/components/Step1/MatchingRulesView.tsx b/src/pages/Route/components/Step1/MatchingRulesView.tsx index 26ffb45ea7..f6284d47b6 100644 --- a/src/pages/Route/components/Step1/MatchingRulesView.tsx +++ b/src/pages/Route/components/Step1/MatchingRulesView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState } from 'react'; import { Button, Table, Modal, Form, Select, Input, Space } from 'antd'; import { useIntl } from 'umi'; diff --git a/src/pages/Route/components/Step1/MetaView.tsx b/src/pages/Route/components/Step1/MetaView.tsx index 5e5e109195..10fb203ceb 100644 --- a/src/pages/Route/components/Step1/MetaView.tsx +++ b/src/pages/Route/components/Step1/MetaView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import Form from 'antd/es/form'; import { Input } from 'antd'; diff --git a/src/pages/Route/components/Step1/RequestConfigView.tsx b/src/pages/Route/components/Step1/RequestConfigView.tsx index 9aa4b960b4..60bd885ca3 100644 --- a/src/pages/Route/components/Step1/RequestConfigView.tsx +++ b/src/pages/Route/components/Step1/RequestConfigView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import Form from 'antd/es/form'; import { Checkbox, Button, Input, Switch, Select, Row, Col } from 'antd'; diff --git a/src/pages/Route/components/Step1/index.tsx b/src/pages/Route/components/Step1/index.tsx index bd373372d0..8e51229e3c 100644 --- a/src/pages/Route/components/Step1/index.tsx +++ b/src/pages/Route/components/Step1/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Form } from 'antd'; import { FormInstance } from 'antd/lib/form'; diff --git a/src/pages/Route/components/Step2/HttpHeaderRewriteView.tsx b/src/pages/Route/components/Step2/HttpHeaderRewriteView.tsx index dc34a747cc..420a7a2cab 100644 --- a/src/pages/Route/components/Step2/HttpHeaderRewriteView.tsx +++ b/src/pages/Route/components/Step2/HttpHeaderRewriteView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState } from 'react'; import Form from 'antd/es/form'; import { Button, Table, Space, Modal, Input, Select } from 'antd'; diff --git a/src/pages/Route/components/Step2/RequestRewriteView.tsx b/src/pages/Route/components/Step2/RequestRewriteView.tsx index 5a2d10661f..337c8100fb 100644 --- a/src/pages/Route/components/Step2/RequestRewriteView.tsx +++ b/src/pages/Route/components/Step2/RequestRewriteView.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useEffect, useState } from 'react'; import Form, { FormInstance } from 'antd/es/form'; import Radio from 'antd/lib/radio'; diff --git a/src/pages/Route/components/Step2/index.tsx b/src/pages/Route/components/Step2/index.tsx index dcf5df046c..a5d8eb447d 100644 --- a/src/pages/Route/components/Step2/index.tsx +++ b/src/pages/Route/components/Step2/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { FormInstance } from 'antd/es/form'; diff --git a/src/pages/Route/constants.ts b/src/pages/Route/constants.ts index e4d69a17b7..97e602cefb 100644 --- a/src/pages/Route/constants.ts +++ b/src/pages/Route/constants.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const HTTP_METHOD_OPTION_LIST: RouteModule.HttpMethod[] = [ 'GET', 'HEAD', diff --git a/src/pages/Route/index.ts b/src/pages/Route/index.ts index fdd59b3bca..b50c753b0d 100644 --- a/src/pages/Route/index.ts +++ b/src/pages/Route/index.ts @@ -1,2 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as RouteZhCN } from './locales/zh-CN'; export { default as RouteEnUS } from './locales/en-US'; diff --git a/src/pages/Route/locales/en-US.ts b/src/pages/Route/locales/en-US.ts index 6dc7d32988..e0c3b30e81 100644 --- a/src/pages/Route/locales/en-US.ts +++ b/src/pages/Route/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'route.create.define.api.request': 'Define API requests', 'route.create.define.api.backend.server': 'Define API Backend Server', diff --git a/src/pages/Route/locales/zh-CN.ts b/src/pages/Route/locales/zh-CN.ts index 4397adaac8..0c67f4fc98 100644 --- a/src/pages/Route/locales/zh-CN.ts +++ b/src/pages/Route/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'route.create.define.api.request': '定义 API 请求', 'route.create.define.api.backend.server': '定义 API 后端服务', diff --git a/src/pages/Route/service.ts b/src/pages/Route/service.ts index 0f8bd9ecde..e9434f5d19 100644 --- a/src/pages/Route/service.ts +++ b/src/pages/Route/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; import { pickBy, identity } from 'lodash'; diff --git a/src/pages/Route/transform.ts b/src/pages/Route/transform.ts index 147401f013..c301479930 100644 --- a/src/pages/Route/transform.ts +++ b/src/pages/Route/transform.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { omit, pick } from 'lodash'; export const transformStepData = ({ diff --git a/src/pages/Route/typing.d.ts b/src/pages/Route/typing.d.ts index c30e710709..c8ec042bb3 100644 --- a/src/pages/Route/typing.d.ts +++ b/src/pages/Route/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace RouteModule { type Operator = '==' | '~=' | '>' | '<' | '~~'; diff --git a/src/pages/SSL/Create.less b/src/pages/SSL/Create.less index 3f6f0d46f9..b1dab24d07 100644 --- a/src/pages/SSL/Create.less +++ b/src/pages/SSL/Create.less @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @import '~antd/es/style/themes/default.less'; .card { diff --git a/src/pages/SSL/Create.tsx b/src/pages/SSL/Create.tsx index 7b31f32982..331e8d3062 100644 --- a/src/pages/SSL/Create.tsx +++ b/src/pages/SSL/Create.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState } from 'react'; import { Card, Steps, notification, Form } from 'antd'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; diff --git a/src/pages/SSL/List.tsx b/src/pages/SSL/List.tsx index b8e471ee97..0966d3fce9 100644 --- a/src/pages/SSL/List.tsx +++ b/src/pages/SSL/List.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useRef, useState } from 'react'; import { PageHeaderWrapper } from '@ant-design/pro-layout'; import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; diff --git a/src/pages/SSL/components/CertificateForm/index.tsx b/src/pages/SSL/components/CertificateForm/index.tsx index cec797393c..ce41273084 100644 --- a/src/pages/SSL/components/CertificateForm/index.tsx +++ b/src/pages/SSL/components/CertificateForm/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Form, Input, Tag } from 'antd'; import { useIntl } from 'umi'; diff --git a/src/pages/SSL/components/CertificateUploader/index.tsx b/src/pages/SSL/components/CertificateUploader/index.tsx index 132eadeec7..44556c5b5d 100644 --- a/src/pages/SSL/components/CertificateUploader/index.tsx +++ b/src/pages/SSL/components/CertificateUploader/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Form, Button, Upload } from 'antd'; import { UploadOutlined } from '@ant-design/icons'; diff --git a/src/pages/SSL/components/Step1/index.tsx b/src/pages/SSL/components/Step1/index.tsx index 1e43e4d929..c0aad19315 100644 --- a/src/pages/SSL/components/Step1/index.tsx +++ b/src/pages/SSL/components/Step1/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState } from 'react'; import { Form, Select } from 'antd'; import { UploadFile } from 'antd/lib/upload/interface'; diff --git a/src/pages/SSL/components/Step2/index.tsx b/src/pages/SSL/components/Step2/index.tsx index d19308541a..578fe42c5f 100644 --- a/src/pages/SSL/components/Step2/index.tsx +++ b/src/pages/SSL/components/Step2/index.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { FormInstance } from 'antd/es/form'; diff --git a/src/pages/SSL/locales/en-US.ts b/src/pages/SSL/locales/en-US.ts index b7d6ca49ea..b5def18b75 100644 --- a/src/pages/SSL/locales/en-US.ts +++ b/src/pages/SSL/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'ssl.form.expiration.time':'Expiration Time', 'ssl.form.public.key':'Public Key', diff --git a/src/pages/SSL/locales/zh-CN.ts b/src/pages/SSL/locales/zh-CN.ts index f78549d62c..890b5865ef 100644 --- a/src/pages/SSL/locales/zh-CN.ts +++ b/src/pages/SSL/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'ssl.form.expiration.time':'过期时间', 'ssl.form.public.key':'公钥', diff --git a/src/pages/SSL/service.ts b/src/pages/SSL/service.ts index 731c1de79e..cd5879e51f 100644 --- a/src/pages/SSL/service.ts +++ b/src/pages/SSL/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; import querystring from 'querystring'; import { identity, pickBy, omit } from 'lodash'; diff --git a/src/pages/SSL/style.less b/src/pages/SSL/style.less index 3f6f0d46f9..b1dab24d07 100644 --- a/src/pages/SSL/style.less +++ b/src/pages/SSL/style.less @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @import '~antd/es/style/themes/default.less'; .card { diff --git a/src/pages/SSL/typing.d.ts b/src/pages/SSL/typing.d.ts index e8c8d91acb..652a436233 100644 --- a/src/pages/SSL/typing.d.ts +++ b/src/pages/SSL/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace SSLModule { type SSL = { sni: string[]; diff --git a/src/pages/Setting/Setting.tsx b/src/pages/Setting/Setting.tsx index 565fe8230d..d2f044f5df 100644 --- a/src/pages/Setting/Setting.tsx +++ b/src/pages/Setting/Setting.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useEffect } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import { Card, Form, Input, Row, Col, notification } from 'antd'; diff --git a/src/pages/Setting/index.ts b/src/pages/Setting/index.ts index eb2672b6ac..8fe8eef9ed 100644 --- a/src/pages/Setting/index.ts +++ b/src/pages/Setting/index.ts @@ -1,2 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default } from './Setting'; export * from './service'; diff --git a/src/pages/Setting/locales/en-US.ts b/src/pages/Setting/locales/en-US.ts index 71e6630e41..dad6420f8e 100644 --- a/src/pages/Setting/locales/en-US.ts +++ b/src/pages/Setting/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'setting.update.configuration.successfully': 'Update Configuration Successfully', 'setting':'Setting', diff --git a/src/pages/Setting/locales/zh-CN.ts b/src/pages/Setting/locales/zh-CN.ts index 87933caf74..329673cecb 100644 --- a/src/pages/Setting/locales/zh-CN.ts +++ b/src/pages/Setting/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'setting.update.configuration.successfully': '更新配置成功', 'setting':'设置', diff --git a/src/pages/Setting/service.ts b/src/pages/Setting/service.ts index caf0347cc5..2e48f24b30 100644 --- a/src/pages/Setting/service.ts +++ b/src/pages/Setting/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const updateMonitorURL = (url = '') => new Promise((resolve) => { localStorage.setItem('GLOBAL_SETTING_GRAFANA_URL', url); diff --git a/src/pages/Setting/style.less b/src/pages/Setting/style.less index 539f1ee368..5ce5fd52ae 100644 --- a/src/pages/Setting/style.less +++ b/src/pages/Setting/style.less @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ @import '~antd/es/style/themes/default.less'; .login { diff --git a/src/pages/Setting/typingd.d.ts b/src/pages/Setting/typingd.d.ts index 77613302d8..8b493f094d 100644 --- a/src/pages/Setting/typingd.d.ts +++ b/src/pages/Setting/typingd.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace Setting { interface AdminAPI { baseURL: string; diff --git a/src/pages/Upstream/Create.tsx b/src/pages/Upstream/Create.tsx index 80c11bb944..65472982ac 100644 --- a/src/pages/Upstream/Create.tsx +++ b/src/pages/Upstream/Create.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useState, useEffect } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import { Card, Steps, notification, Form } from 'antd'; diff --git a/src/pages/Upstream/List.tsx b/src/pages/Upstream/List.tsx index 8f6bb5e089..3e71ea5843 100644 --- a/src/pages/Upstream/List.tsx +++ b/src/pages/Upstream/List.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React, { useRef, useState } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table'; diff --git a/src/pages/Upstream/components/Preview.tsx b/src/pages/Upstream/components/Preview.tsx index 5ddc7e2a8f..92d436f595 100644 --- a/src/pages/Upstream/components/Preview.tsx +++ b/src/pages/Upstream/components/Preview.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { FormInstance } from 'antd/lib/form'; diff --git a/src/pages/Upstream/components/Step1.tsx b/src/pages/Upstream/components/Step1.tsx index 54f30c8bd3..9ac7f73390 100644 --- a/src/pages/Upstream/components/Step1.tsx +++ b/src/pages/Upstream/components/Step1.tsx @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import React from 'react'; import { Form, Input, Row, Col, InputNumber, Select } from 'antd'; import { FormInstance } from 'antd/lib/form'; diff --git a/src/pages/Upstream/constants.ts b/src/pages/Upstream/constants.ts index 59d9683a28..25bb12f92c 100644 --- a/src/pages/Upstream/constants.ts +++ b/src/pages/Upstream/constants.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export const FORM_ITEM_LAYOUT = { labelCol: { span: 6, diff --git a/src/pages/Upstream/index.ts b/src/pages/Upstream/index.ts index e01fb702be..0ee2b1d523 100644 --- a/src/pages/Upstream/index.ts +++ b/src/pages/Upstream/index.ts @@ -1,2 +1,18 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export { default as UpstreamZhCN } from './locales/zh-CN'; export { default as UpstreamEnUS } from './locales/en-US'; diff --git a/src/pages/Upstream/locales/en-US.ts b/src/pages/Upstream/locales/en-US.ts index 410040c684..a56bf102ee 100644 --- a/src/pages/Upstream/locales/en-US.ts +++ b/src/pages/Upstream/locales/en-US.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'upstream.step.backend.server.domain.or.ip': 'Backend Server Domain Name/IP', 'upstream.step.domain.name.default.analysis': diff --git a/src/pages/Upstream/locales/zh-CN.ts b/src/pages/Upstream/locales/zh-CN.ts index 7f1867a507..5bb175ec71 100644 --- a/src/pages/Upstream/locales/zh-CN.ts +++ b/src/pages/Upstream/locales/zh-CN.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ export default { 'upstream.step.backend.server.domain.or.ip': '后端服务域名/IP', 'upstream.step.domain.name.default.analysis': diff --git a/src/pages/Upstream/service.ts b/src/pages/Upstream/service.ts index d2c4b9bd17..21b37cd322 100644 --- a/src/pages/Upstream/service.ts +++ b/src/pages/Upstream/service.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { request } from 'umi'; export const fetchList = ({ current = 1, pageSize = 10 }, search: string) => diff --git a/src/pages/Upstream/transform.ts b/src/pages/Upstream/transform.ts index 351ff1df66..5a67c2cb48 100644 --- a/src/pages/Upstream/transform.ts +++ b/src/pages/Upstream/transform.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import { omit } from 'lodash'; const transformUpstreamNodes = ( diff --git a/src/pages/Upstream/typing.d.ts b/src/pages/Upstream/typing.d.ts index 3580d26155..82063459e9 100644 --- a/src/pages/Upstream/typing.d.ts +++ b/src/pages/Upstream/typing.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare namespace UpstreamModule { type UpstreamHost = { host: string; diff --git a/src/pages/document.ejs b/src/pages/document.ejs index 387a509cfa..9a82df99e1 100644 --- a/src/pages/document.ejs +++ b/src/pages/document.ejs @@ -1,3 +1,26 @@ + @@ -22,7 +45,6 @@ padding: 0; } #root { - background-image: url('/home_bg.png'); background-repeat: no-repeat; background-size: 100% auto; } @@ -170,7 +192,6 @@
- logo
{ diff --git a/src/typings.d.ts b/src/typings.d.ts index 6a79cb1dee..a8875a6238 100644 --- a/src/typings.d.ts +++ b/src/typings.d.ts @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ declare module 'slash2'; declare module '*.css'; declare module '*.less'; diff --git a/tests/PuppeteerEnvironment.js b/tests/PuppeteerEnvironment.js index 13409be1ad..6ad5040208 100644 --- a/tests/PuppeteerEnvironment.js +++ b/tests/PuppeteerEnvironment.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ // eslint-disable-next-line const NodeEnvironment = require('jest-environment-node'); const getBrowser = require('./getBrowser'); diff --git a/tests/beforeTest.js b/tests/beforeTest.js index 930223949b..e0c05528cc 100644 --- a/tests/beforeTest.js +++ b/tests/beforeTest.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /* eslint-disable global-require */ /* eslint-disable import/no-extraneous-dependencies */ const { execSync } = require('child_process'); diff --git a/tests/getBrowser.js b/tests/getBrowser.js index 3b4ef331ab..83bd3e1057 100644 --- a/tests/getBrowser.js +++ b/tests/getBrowser.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /* eslint-disable global-require */ /* eslint-disable import/no-extraneous-dependencies */ const findChrome = require('carlo/lib/find_chrome'); diff --git a/tests/run-tests.js b/tests/run-tests.js index 3aa080da86..3aff0261ef 100644 --- a/tests/run-tests.js +++ b/tests/run-tests.js @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable @typescript-eslint/no-var-requires */ /* eslint-disable eslint-comments/no-unlimited-disable */