diff --git a/index.html b/index.html index c1440954..cb354a9e 100644 --- a/index.html +++ b/index.html @@ -262,7 +262,7 @@ // path and arguments. function parseUrlHash(hash) { var parser = document.createElement('a'); - parser.href = '/' + location.hash.substr(1); + parser.href = '/' + hash.substr(1); var params = {}; parser.search.substr(1).split("&").forEach(function(part) { var item = part.split("="); @@ -270,11 +270,11 @@ params[decodeURIComponent(item[0])] = decodeURIComponent(item[1]); } }); - return {path: parser.pathname, params: params}; + return {path: parser.pathname.substr(1).split("/"), params: params}; } function composeUrlHash(path, params) { - var url = path; + var url = path.join("/"); var args = []; for (var key in params) { if (params.hasOwnProperty(key)) { @@ -284,7 +284,24 @@ if (args.length > 0) { url += "?" + args.join("&"); } - return url. + return url; + } + + function addParamToHash(hash, key, value) { + var hash = parseUrlHash(hash); + if (!hash.params) { + hash.params = {}; + } + hash.params[key] = value; + return composeUrlHash(hash.path, hash.params); + } + + function removeParamFromHash(hash, key) { + var hash = parseUrlHash(hash); + if (hash.params) { + delete hash.params[key]; + } + return composeUrlHash(hash.path, hash.params); } // Detect server address from the URL @@ -543,7 +560,7 @@ render() { return ( - close + close ); } } @@ -1005,7 +1022,7 @@ } {title} {this.props.onCancel && !this.props.required ? - × + × : } ); @@ -1311,9 +1328,9 @@ render: function() { return (
- person_add + person_add   - settings + settings
); } @@ -1323,9 +1340,9 @@ render: function() { return (
- chat + chat   - settings + settings
); } @@ -1590,7 +1607,7 @@ onSubmit={this.handleTagsUpdated} />
- + exit_to_app Logout
@@ -1705,7 +1722,7 @@
:
- + edit Manage tags {tags} @@ -1777,7 +1794,7 @@
{this.props.showContextMenu ? - + expand_more : null} @@ -2195,13 +2212,13 @@
{this.state.tabSelected === "grp" ? @@ -2323,7 +2340,7 @@ - + search
@@ -2728,6 +2745,7 @@ this.props.onTopicTagsUpdate(this.props.topic, tags); } }, + handleContextMenu: function(params) { var instance = this; var topic = Tinode.getTopic(this.props.topic); @@ -2900,12 +2918,12 @@
{this.state.sharer ? - + person_add Add members : null} {!this.state.owner ? - + exit_to_app Leave : null} @@ -2924,7 +2942,7 @@
:
- + exit_to_app Leave
@@ -3024,7 +3042,7 @@ timestamp={this.props.timestamp} received={this.props.received} />

- + expand_more @@ -3433,7 +3451,7 @@
{this.props.displayMobile ? - + arrow_back : @@ -3453,7 +3471,7 @@
}
- + more_vert
@@ -3599,12 +3617,12 @@
{this.props.disabled ? photo : - + photo } {this.props.disabled ? attach_file : - + attach_file }