@@ -47,25 +47,61 @@ export class ProjectRedirectView {
47
47
this . is_from_url_visible = ko . observable ( ) ;
48
48
this . is_to_url_visible = ko . observable ( ) ;
49
49
50
+ // HTML prefix content for from field, don't use user input here
51
+ this . redirect_from_prefix = ko . computed ( ( ) => {
52
+ const redirect_type = this . redirect_type ( ) ;
53
+ const lang_part = `/<span class="ui violet text">$lang</span>` ;
54
+ const version_part = `/<span class="ui violet text">$version</span>` ;
55
+
56
+ if ( redirect_type === "page" ) {
57
+ return `${ lang_part } ${ version_part } /` ;
58
+ } else if ( redirect_type === "clean_url_to_html" ) {
59
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>/` ;
60
+ } else if ( redirect_type === "clean_url_without_trailing_slash_to_html" ) {
61
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>` ;
62
+ } else if ( redirect_type === "html_to_clean_url" ) {
63
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>.html` ;
64
+ }
65
+ return "" ;
66
+ } ) ;
67
+ // User input for from field as text, no HTML allowed
50
68
this . redirect_from = ko . computed ( ( ) => {
51
- var from_url = this . from_url ( ) ;
52
- var redirect_type = this . redirect_type ( ) ;
69
+ const from_url = this . from_url ( ) ;
70
+ const redirect_type = this . redirect_type ( ) ;
53
71
if ( redirect_type === "prefix" ) {
54
72
return from_url + "faq.html" ;
55
73
} else if ( redirect_type === "page" ) {
56
- return "/$lang/$version/" + from_url . replace ( / ^ \/ + / , "" ) ;
74
+ return from_url . replace ( / ^ \/ + / , "" ) ;
57
75
} else if ( redirect_type === "exact" ) {
58
76
return from_url ;
59
77
}
60
78
return "" ;
61
79
} ) ;
62
- this . redirect_to = ko . computed ( ( ) => {
63
- const to_url = this . to_url ( ) ;
80
+ // HTML prefix content for to field, don't use user input here.
81
+ this . redirect_to_prefix = ko . computed ( ( ) => {
64
82
const redirect_type = this . redirect_type ( ) ;
83
+ const lang_part = `/<span class="ui violet text">$lang</span>` ;
84
+ const version_part = `/<span class="ui violet text">$version</span>` ;
85
+
65
86
if ( redirect_type === "prefix" ) {
66
- return "/$lang/$version /faq.html" ;
87
+ return ` ${ lang_part } ${ version_part } /faq.html` ;
67
88
} else if ( redirect_type === "page" ) {
68
- return "/$lang/$version/" + to_url . replace ( / ^ \/ + / , "" ) ;
89
+ return `${ lang_part } ${ version_part } /` ;
90
+ } else if ( redirect_type === "clean_url_to_html" ) {
91
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>.html` ;
92
+ } else if ( redirect_type === "clean_url_without_trailing_slash_to_html" ) {
93
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>.html` ;
94
+ } else if ( redirect_type === "html_to_clean_url" ) {
95
+ return `${ lang_part } ${ version_part } /<span class="ui violet text">$file</span>/` ;
96
+ }
97
+ return "" ;
98
+ } ) ;
99
+ // User input for to field as text, no HTML allowed
100
+ this . redirect_to = ko . computed ( ( ) => {
101
+ const to_url = this . to_url ( ) ;
102
+ const redirect_type = this . redirect_type ( ) ;
103
+ if ( redirect_type === "page" ) {
104
+ return to_url . replace ( / ^ \/ + / , "" ) ;
69
105
} else if ( redirect_type === "exact" ) {
70
106
return to_url ;
71
107
}
@@ -83,6 +119,16 @@ export class ProjectRedirectView {
83
119
}
84
120
this . is_from_url_visible ( true ) ;
85
121
this . is_to_url_visible ( is_to_url_visible ) ;
122
+ } else if (
123
+ [
124
+ "clean_url_to_html" ,
125
+ "clean_url_without_trailing_slash_to_html" ,
126
+ "html_to_clean_url" ,
127
+ ] . includes ( redirect_type )
128
+ ) {
129
+ this . is_example_disabled ( false ) ;
130
+ this . is_from_url_visible ( false ) ;
131
+ this . is_to_url_visible ( false ) ;
86
132
} else {
87
133
this . is_example_disabled ( true ) ;
88
134
this . is_from_url_visible ( false ) ;
0 commit comments