Просмотр исходного кода

fix(settings) Move project settings to new paths (#11860)

Add an additional `projects` segment to the settings routes to allow
them to be conflict free with organization settings. This allows
organizations that have an `integrations` project to once again access
their settings.

I've stuck with the `/settings` prefix as it keeps all the settings
routes together. I felt that having some settings under `/organizations`
and other under `/settings` would be harder to remember, and harder to
navigate via direct URL entry.

Fixes ISSUE-277
Mark Story 6 лет назад
Родитель
Сommit
d83b2b219c

+ 1 - 1
src/sentry/plugins/sentry_mail/activity/new_processing_issues.py

@@ -46,7 +46,7 @@ class NewProcessingIssuesActivityEmail(ActivityEmail):
             self.activity.data['reprocessing_active'],
             'info_url':
             absolute_uri(
-                u'/{}/{}/settings/processing-issues/'.format(
+                u'/settings/{}/projects/{}/processing-issues/'.format(
                     self.organization.slug,
                     self.project.slug,
                 )

+ 2 - 1
src/sentry/plugins/sentry_mail/models.py

@@ -214,7 +214,8 @@ class MailPlugin(NotificationPlugin):
 
         rules = []
         for rule in notification.rules:
-            rule_link = '/%s/%s/settings/alerts/rules/%s/' % (org.slug, project.slug, rule.id)
+            rule_link = '/settings/%s/projects/%s/alerts/rules/%s/' % (
+                org.slug, project.slug, rule.id)
 
             rules.append((rule.label, rule_link))
 

+ 4 - 2
src/sentry/static/sentry/app/components/projectHeader/index.jsx

@@ -82,7 +82,9 @@ class ProjectHeader extends React.Component {
                 </ProjectLink>
               </li>
               <li className={navSection == 'settings' ? 'active' : ''}>
-                <Link to={`/settings/${org.slug}/${project.slug}/`}>{t('Settings')}</Link>
+                <Link to={`/settings/${org.slug}/projects/${project.slug}/`}>
+                  {t('Settings')}
+                </Link>
               </li>
             </NavTabs>
           </div>
@@ -119,7 +121,7 @@ class ProjectHeader extends React.Component {
                   <MenuItem divider={true} />
                   <div style={{textAlign: 'center', padding: '5px 0px'}}>
                     <Button
-                      to={`/settings/${org.slug}/${project.slug}/environments/`}
+                      to={`/settings/${org.slug}/projects/${project.slug}/environments/`}
                       size="small"
                     >
                       {t('Manage environments')}

+ 1 - 1
src/sentry/static/sentry/app/components/projectSelector.jsx

@@ -278,7 +278,7 @@ class ProjectSelectorItem extends React.PureComponent {
           {project.isBookmarked && <BookmarkIcon src="icon-star-small-filled" />}
           {multi && (
             <SettingsIconLink
-              to={`/settings/${organization.slug}/${project.slug}/`}
+              to={`/settings/${organization.slug}/projects/${project.slug}/`}
               onClick={e => e.stopPropagation()}
             >
               <InlineSvg src="icon-settings" />

+ 2 - 2
src/sentry/static/sentry/app/components/search/sources/apiSource.jsx

@@ -58,7 +58,7 @@ async function createProjectResults(projectsPromise, orgId) {
         model: project,
         sourceType: 'project',
         resultType: 'settings',
-        to: `/settings/${orgId}/${project.slug}/`,
+        to: `/settings/${orgId}/projects/${project.slug}/`,
       },
     ])
   );
@@ -95,7 +95,7 @@ async function createLegacyIntegrationResults(pluginsPromise, orgId) {
     model: plugin,
     sourceType: 'plugin',
     resultType: 'integration',
-    to: `/settings/${orgId}/:projectId/plugins/${plugin.id}/`,
+    to: `/settings/${orgId}/projects/:projectId/plugins/${plugin.id}/`,
   }));
 }
 

+ 1 - 1
src/sentry/static/sentry/app/components/stream/processingIssueHint.jsx

@@ -21,7 +21,7 @@ class ProcessingIssueHint extends React.Component {
 
   render() {
     const {orgId, projectId, issue, showProject} = this.props;
-    const link = `/settings/${orgId}/${projectId}/processing-issues/`;
+    const link = `/settings/${orgId}/projects/${projectId}/processing-issues/`;
     let showButton = false;
     const className = {
       'processing-issues': true,

+ 1 - 1
src/sentry/static/sentry/app/data/forms/cspReports.jsx

@@ -1,7 +1,7 @@
 // Export route to make these forms searchable by label/help
 import {t} from 'app/locale';
 
-export const route = '/settings/:orgId/:projectId/csp/';
+export const route = '/settings/:orgId/projects/:projectId/csp/';
 
 const formGroups = [
   {

+ 1 - 1
src/sentry/static/sentry/app/data/forms/inboundFilters.jsx

@@ -3,7 +3,7 @@ import {t, tct} from 'app/locale';
 import ExternalLink from 'app/components/externalLink';
 
 // Export route to make these forms searchable by label/help
-export const route = '/settings/:orgId/:projectId/filters/';
+export const route = '/settings/:orgId/projects/:projectId/filters/';
 
 const newLineHelpText = t('Separate multiple entries with a newline.');
 const globHelpText = tct('Allows [link:glob pattern matching].', {

+ 1 - 1
src/sentry/static/sentry/app/data/forms/processingIssues.jsx

@@ -1,7 +1,7 @@
 // Export route to make these forms searchable by label/help
 import {t} from 'app/locale';
 
-export const route = '/settings/:orgId/:projectId/processing-issues/';
+export const route = '/settings/:orgId/projects/:projectId/processing-issues/';
 
 const formGroups = [
   {

+ 1 - 1
src/sentry/static/sentry/app/data/forms/projectAlerts.jsx

@@ -1,7 +1,7 @@
 import {t, tn} from 'app/locale';
 
 // Export route to make these forms searchable by label/help
-export const route = '/settings/:orgId/:projectId/alerts/';
+export const route = '/settings/:orgId/projects/:projectId/alerts/';
 
 const formatMinutes = value => {
   value = value / 60;

Некоторые файлы не были показаны из-за большого количества измененных файлов