2 // Copyright 2008 Grégory Burri
4 // This file is part of Euphorik.
6 // Euphorik is free software: you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation, either version 3 of the License, or
9 // (at your option) any later version.
11 // Euphorik is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
20 * Gestion du fragment d'url, permet de le modifier en direct.
22 Fragment = function() {
23 var thisFragment
= this;
25 if (!window
.location
.hash
) {
29 var fragmentsStr
= window
.location
.hash
.slice(1).split(";");
30 fragmentsStr
.each(function(i
, tuple
) {
31 tuple
= tuple
.split("=");
32 thisFragment
.fragments
[tuple
[0]] = JSON
.parse(tuple
[1]);
35 ;; console
.log(error
);
39 Fragment
.prototype.setVal = function(name
, val
) {
40 this.fragments
[name
] = val
;
43 Fragment
.prototype.getVal = function(name
) {
44 return this.fragments
[name
];
47 Fragment
.prototype.delVal = function(name
) {
48 delete this.fragments
[name
];
51 Fragment
.prototype.eraseAllVal = function() {
55 Fragment
.prototype.each = function(fun
) {
56 objectEach(this.fragments
, function(name
, val
) {
61 Fragment
.prototype.write = function() {
62 var fragmentsStr
= "";
64 objectEach(this.fragments
, function(name
, val
) {
65 fragmentsStr
+= (first
? "" : ";") + name
+ "=" + JSON
.stringify(val
);
68 window
.location
.hash
= fragmentsStr
;