aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorVojta Jina2011-06-06 23:03:04 +0200
committerIgor Minar2011-06-06 23:10:30 -0700
commit4cdce2d30b0f78c9bae4f9fd8751583c6ccca610 (patch)
tree538e5e447534eb0c450d08cd3d6fc74a5fc5e086 /docs
parent48e69ed4d1e672ec849344e9bf3ad1dbdd68f21a (diff)
downloadangular.js-4cdce2d30b0f78c9bae4f9fd8751583c6ccca610.tar.bz2
Docs: Error 404 page with simple suggestion for new links
Diffstat (limited to 'docs')
-rw-r--r--docs/src/templates/doc_widgets.js6
-rw-r--r--docs/src/templates/docs.js25
2 files changed, 27 insertions, 4 deletions
diff --git a/docs/src/templates/doc_widgets.js b/docs/src/templates/doc_widgets.js
index 2bcbbfed..0e12fee8 100644
--- a/docs/src/templates/doc_widgets.js
+++ b/docs/src/templates/doc_widgets.js
@@ -169,7 +169,7 @@
});
- angular.directive('doc:tutorial-nav', function(step) {
+ angular.directive('doc:tutorial-nav', function(step) {
return function(element) {
var prevStep, codeDiff, nextStep,
content;
@@ -185,7 +185,7 @@
nextStep = 'the_end';
codeDiff = 'step-10...step-11';
} else {
- prevStep = 'step_' + pad(step - 1)
+ prevStep = 'step_' + pad(step - 1);
nextStep = 'step_' + pad(step + 1);
codeDiff = 'step-' + step + '...step-' + step;
}
@@ -199,7 +199,7 @@
element.attr('id', 'tutorial-nav');
element.append(content);
- }
+ };
function pad(step) {
return (step < 10) ? ('0' + step) : step;
diff --git a/docs/src/templates/docs.js b/docs/src/templates/docs.js
index b6da7b97..99ca0599 100644
--- a/docs/src/templates/docs.js
+++ b/docs/src/templates/docs.js
@@ -15,7 +15,7 @@ function DocsController($location, $browser, $window) {
self.sectionId = parts[1];
self.partialId = parts[2] || 'index';
self.pages = angular.Array.filter(NG_PAGES, {section:self.sectionId});
- self.partialTitle = (angular.Array.filter(self.pages, function(doc){return doc.id == self.partialId;})[0]||{}).name;
+ self.partialTitle = (angular.Array.filter(self.pages, function(doc){return doc.id == self.partialId;})[0]||{}).name || 'Error: Page Not Found!';
}
});
@@ -84,3 +84,26 @@ function TutorialInstructionsCtrl($cookieStore) {
$cookieStore.put('selEnv', id);
};
}
+
+/**
+ * Display 404 page and suggest new link if possible
+ */
+angular.service('$xhr.error', function($location) {
+ function suggestLink(wrongLink) {
+ var link = wrongLink.replace(/^!\/?/, '');
+
+ if (link.match(/^angular/)) return 'api/' + link;
+ else if (link.match(/^cookbook/)) return link.replace('cookbook.', 'cookbook/');
+ }
+
+ return function(request, response) {
+ var suggestion = suggestLink($location.hashPath),
+ HTML_404 = '<h1>Error: Page Not Found</h1>' +
+ '<p>Sorry this page has not been found.</p>';
+
+ if (suggestion)
+ HTML_404 += '<p>Looks like you are using an old link. Please update your bookmark to: <a href="#!/' + suggestion + '">' + suggestion + '</a></p>';
+
+ request.callback(200, HTML_404);
+ };
+});