aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/location.js
AgeCommit message (Collapse)Author
2013-11-26refactor($location): move file://+win path fix to $locationJeff Cross
The urlResolve method was fixed to automatically remove the volume label from path names to fix issues with the file protocol on windows where $location.path() was returning paths where the first segment would be the volume name, such as "/C:/mypath". See #4942 and #4928 However, the solution was specific to the $location non- HTML5 mode, and was implemented at a lower level of abstraction than it should have been. This refactor moves the fix to inside of the LocationHashBangUrl $$parse method. Closes #5041
2013-11-13fix(urlUtils): made removal of windows drive from path saferJeff Cross
Prior to this fix, the urlResolve method would automatically strip the first segment of a path if the segment ends in a colon. This was to correct undesired behavior in the $location service using the file protocol on windows in multiple browsers (see #4680). However, there could be cases where users intentionally have first path segments that end in a colon (although this conflicts with section 3.3 of rfc3986). The solution to this problem is an extra check to make sure the first path segment of the input url does not end with a colon, to make sure we're only removing undesired path segments. Fixes #4939
2013-11-02docs($location): update paramValue description for search()Freek Wielstra
search() supports an array for paramValue, but this is not described in the docs.
2013-10-26docs($location): document $location's eventsValentyn Shybanov
Closes #1569 Closes #4446
2013-10-22style: make jshint happyVojta Jina
2013-10-10refactor(location): $location now uses urlUtils, not RegExJeff Cross
The location service, and other portions of the application, were relying on a complicated regular expression to get parts of a URL. But there is already a private urlUtils provider, which relies on HTMLAnchorElement to provide this information, and is suitable for most cases. In order to make urlUtils more accessible in the absence of DI, its methods were converted to standalone functions available globally. The urlUtils.resolve method was renamed urlResolve, and was refactored to only take 1 argument, url, and not the 2nd "parse" boolean. The method now always returns a parsed url. All places in code which previously wanted a string instead of a parsed url can now get the value from the href property of the returned object. Tests were also added to ensure IPv6 addresses were handled correctly. Closes #3533 Closes #2950 Closes #3249
2013-09-05docs(): parameter for html5Mode is booleanPete Bacon Darwin
2013-08-12docs(minErr): add location/ipthprfxIgor Minar
2013-08-12docs(minErr): add location/isrcharg docsIgor Minar
2013-08-12docs(minErr): add location/ihshprfxIgor Minar
2013-08-12chore($location): drop bugus errorIgor Minar
we can never get to this state, so dropping the error
2013-08-12fix($location): don't initialize hash url unnecessarilyIgor Minar
After a recent refactoring using $location in the default hashbang mode would result in hash url being initialized unnecessarily in cases when the base url didn't end with a slash. for example http://localhost:8000/temp.html would get rewritten as http://location:8000/temp.html#/temp.html by error.
2013-07-31fix(location): fix parameter handling on search()Misko Hevery
2013-07-27docs(*): fixed typos and ngdoc parameter namesCarl Danley
2013-07-01fix(Angular.js): handle duplicate params in parseKeyValue/toKeyValuejoshkurz
parseKeyValue and toKeyValue can now handle duplicate values in the query. ``` ?x=1&x=2 <-> {x:[1,2]} ``` The algorithm looks like: 1)parseKeyValue looks for presence of obj[key] 2)detects and replaces obj[key] with [obj[key],val] 3)then pushes more duplicates if necessary 4)toKeyValue decodes array correctly 5)(not changed)$location.search({param: 'key'}) still replaces if necessary 6)(not changed)$location.search({param: ['key1', 'key2']}) sets the url with duplicates BREAKING CHANGE: Before this change: - `parseKeyValue` only took the last key overwriting all the previous keys; - `toKeyValue` joined the keys together in a comma delimited string. This was deemed buggy behavior. If your server relied on this behavior then either the server should be fixed or a simple serialization of the array should be done on the client before passing it to $location.
2013-06-24fix($location): default to / for the url base if no base[href]Igor Minar
With the recent refactoring of $location service we changed this behavior resulting in a regression. Previously we thought that html5 mode always required base[href] to be set in order for urls to resolve properly. It turns out that base[href] is problematic because it makes anchor urls (#foo) to always resolve to the base url, which is almost always incorrect and results in all anchors links and other anchor urls (e.g. svg references) to be broken. For this reason, we should now start recommending that people just deploy to root context (/) and not set the base[href] when using the html5 mode (push/pop history state). If it's impossible to deploy to the root context then either all urls in the app must be absolute or base[href] must be set with the caveat that anchor urls in such app won't work. Closes #2762
2013-06-19feat(jqLite): switch bind/unbind to more recent jQuery on/offMichał Gołębiowski
jQuery switched to a completely new event binding implementation as of 1.7.0, centering around on/off methods instead of previous bind/unbind. This patch makes jqLite match this implementation while still supporting previous bind/unbind methods.
2013-06-17chore(minErr): replace ngError with minErrKen Sheedlo
2013-05-24feat(ngError): add error message compression and better error messagesIgor Minar
- add toThrowNg matcher
2013-05-06fix($location): prevent navigation when event isDefaultPreventedMisko Hevery
2013-05-02fix($location): compare against actual instead of current URLMisko Hevery
2013-05-02fix($location): prevent navigation if already on the URLMisko Hevery
2013-05-01fix($location): back-button should fire $locationChangeStartquazzie
Before $locationChangeStart event is not broadcast when pressing the back-button on the browser. Closes #2109
2013-04-25fix(location): correctly rewrite Html5 urlsPete Bacon Darwin
2013-04-15fix($location): fix URL interception in hash-bang modeMisko Hevery
Closes #1051
2013-03-15fix($location): parse FirefoxOS packaged app urlsManuel Braun
FirefoxOS uses special URLs like app://{d0419af1-8b42-41c5-96f4-ef4179e52315}/index.html for packaged Apps. Closes #2112
2013-03-11fix($location): correctly rewrite html5 url to hashbang urlThibault Leruitte
In situations where path() matched basepath and we needed to convert from html5 url to hashbang url, the $location service considered the url to be already rewritten, which resulted in an error.
2012-11-26fix($location): reset $location.$$replace with every watch callRado Kirov
Closes #1111
2012-06-20fix($location): url rewriting if element was removedVojta Jina
When user clicks a link, $location needs to intercept this event. The <a> doesn't have to be target element of the DOM event, so it needs to traverse the DOM, to find first <a> parent. If the target element was removed from DOM, during the same event, it would throw an exception. This fixes the issue. Closes #1058
2012-06-14fix($location): fix URL interception in hash-bang modeMisko Hevery
Closes #1051
2012-06-13fix($location): correctly parse link urls in hashbang mode with prefixMisko Hevery
This is a second fix for a regression that was introduced by 92a2e180. The fix addresses scenarios when the $location service is configured with a hash prefix. Closes #1037
2012-06-12fix($location): correctly parse link urls in hashbang modeMisko Hevery
This is a fix for a regression that was introduced by 92a2e180 Closes #1037
2012-06-12fix($location): throw Errors not StringsIgor Minar
2012-06-12docs(*): simplify doc urlsIgor Minar
we now have two types of namespaces: - true namespace: angular.* - used for all global apis - virtual namespace: ng.*, ngMock.*, ... - used for all DI modules the virual namespaces have services under the second namespace level (e.g. ng.) and filters and directives prefixed with filter: and directive: respectively (e.g. ng.filter:orderBy, ng.directive:ngRepeat) this simplifies urls and makes them a lot shorter while still avoiding name collisions
2012-06-02feat($location): add $locatonChange[begin|completed] eventMisko Hevery
This allows location change cancelation
2012-06-02chore($location) switch to use $rootElementMisko Hevery
2012-05-24fix(docs): accept return in addition to returnsMisko Hevery
documentation used @return but parser expected @returns, which made the generated documentation incomplete.
2012-05-14fix($location): support urls with any protocolIgor Minar
The url used for location parsing was quite strict and did not support custom url schemes like "chrome-extension://". With this change the only requirement for scheme is that it doesn't contain ":" character.
2012-04-12fix($location): properly rewrite urls in html5 mode with base url setIgor Minar
previously we were doing all kinds of checks to see if we should rewrite the url or not and we were missing many scenarios. not any more. with this change, we rewrite the url unless: - the href is not set - link has target attribute - the absolute url of the link doesn't match the absolute prefix for all urls in our app This also means that ng-ext-link attribute which we previously used to distinguish external links from app links is not necessary any more. apps can just set target=_self to prevent rewriting. BREAKING CHANGE: ng-ext-link directive was removed because it's unnecessary apps that relied on ng-ext-link should simply replace it with target=_self
2012-04-11fix($location): don't rewrite links to different base pathsThibault Leruitte
links to different base paths should not be left untouched
2012-04-10chore(*): remove dead code and fix code style issuesIgor Minar
2012-04-02fix($location): search setter should not double-encode the valueMykhailo Kotsur
By mistake both the setter and helper function that composes the whole url were encoding the search values. Closes #751
2012-03-28chore(module): move files around in preparation for more modulesMisko Hevery