mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
Merge pull request #2414 from prototech/ticket/12440
[ticket/12440] Set browser URL to point to specific post when using view=unread * prototech/ticket/12440: [ticket/12440] Use a more generic approach for replacing the URL. [ticket/12440] Set browser URL to point to specific post when using view=unread Conflicts: phpBB/styles/prosilver/template/viewtopic_body.html
This commit is contained in:
commit
e976f7908a
3 changed files with 75 additions and 3 deletions
|
@ -694,6 +694,74 @@ $('#phpbb').click(function(e) {
|
|||
}
|
||||
});
|
||||
|
||||
phpbb.history = {};
|
||||
|
||||
/**
|
||||
* Check whether a method in the native history object is supported.
|
||||
*
|
||||
* @param string fn Method name.
|
||||
* @return bool Returns true if the method is supported.
|
||||
*/
|
||||
phpbb.history.isSupported = function(fn) {
|
||||
if (typeof history === 'undefined' || typeof history[fn] === 'undefined') {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
/**
|
||||
* Wrapper for the pushState and replaceState methods of the
|
||||
* native history object.
|
||||
*
|
||||
* @param string mode Mode. Either push or replace.
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.history.alterUrl = function(mode, url, title, obj) {
|
||||
var fn = mode + 'State';
|
||||
|
||||
if (!url || !phpbb.history.isSupported(fn)) {
|
||||
return;
|
||||
}
|
||||
if (!title) {
|
||||
title = document.title;
|
||||
}
|
||||
if (!obj) {
|
||||
obj = null;
|
||||
}
|
||||
|
||||
history[fn](obj, title, url);
|
||||
};
|
||||
|
||||
/**
|
||||
* Wrapper for the native history.replaceState method.
|
||||
*
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.history.replaceUrl = function(url, title, obj) {
|
||||
phpbb.history.alterUrl('replace', url, title, obj);
|
||||
};
|
||||
|
||||
/**
|
||||
* Wrapper for the native history.pushState method.
|
||||
*
|
||||
* @param string url New URL.
|
||||
* @param string title Optional page title.
|
||||
* @patam object obj Optional state object.
|
||||
*
|
||||
* @return undefined
|
||||
*/
|
||||
phpbb.history.pushUrl = function(url, title, obj) {
|
||||
phpbb.history.alterUrl('push', url, title, obj);
|
||||
};
|
||||
|
||||
/**
|
||||
* Hide the optgroups that are not the selected timezone
|
||||
*
|
||||
|
@ -1444,6 +1512,10 @@ $(document).ready(function() {
|
|||
$('#color_palette_placeholder').each(function() {
|
||||
phpbb.registerPalette($(this));
|
||||
});
|
||||
|
||||
// Update browser history URL to point to specific post in viewtopic.php
|
||||
// when using view=unread#unread link.
|
||||
phpbb.history.replaceUrl($('#unread[data-url]').data('url'));
|
||||
});
|
||||
|
||||
})(jQuery); // Avoid conflicts with other libraries
|
||||
|
|
|
@ -115,7 +115,7 @@
|
|||
|
||||
<!-- BEGIN postrow -->
|
||||
<!-- EVENT viewtopic_body_postrow_post_before -->
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a id="unread"></a><!-- ENDIF -->
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a id="unread" data-url="{postrow.U_MINI_POST}"></a><!-- ENDIF -->
|
||||
<div id="p{postrow.POST_ID}" class="post <!-- IF postrow.S_ROW_COUNT is odd -->bg1<!-- ELSE -->bg2<!-- ENDIF --><!-- IF postrow.S_UNREAD_POST --> unreadpost<!-- ENDIF --><!-- IF postrow.S_POST_REPORTED --> reported<!-- ENDIF --><!-- IF postrow.S_POST_DELETED --> deleted<!-- ENDIF --><!-- IF postrow.S_ONLINE and not postrow.S_POST_HIDDEN --> online<!-- ENDIF --><!-- IF postrow.POSTER_WARNINGS --> warned<!-- ENDIF -->">
|
||||
<div class="inner">
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
|
||||
<!-- IF postrow.S_POST_HIDDEN -->
|
||||
<td class="gensmall" colspan="2" height="25" align="center">
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a name="unread"></a><!-- ENDIF -->
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a id="unread" data-url="{postrow.U_MINI_POST}"></a><!-- ENDIF -->
|
||||
<a name="p{postrow.POST_ID}"></a>
|
||||
<!-- IF postrow.S_POST_HIDDEN -->
|
||||
<!-- IF postrow.S_POST_DELETED -->
|
||||
|
@ -155,7 +155,7 @@
|
|||
<!-- ELSE -->
|
||||
|
||||
<td align="center" valign="middle">
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a name="unread"></a><!-- ENDIF --><a name="p{postrow.POST_ID}"></a>
|
||||
<!-- IF postrow.S_FIRST_UNREAD --><a id="unread" data-url="{postrow.U_MINI_POST}"></a><!-- ENDIF --><a name="p{postrow.POST_ID}"></a>
|
||||
<b class="postauthor"<!-- IF postrow.POST_AUTHOR_COLOUR --> style="color: {postrow.POST_AUTHOR_COLOUR}"<!-- ENDIF -->>{postrow.POST_AUTHOR}</b>
|
||||
</td>
|
||||
<td width="100%" height="25">
|
||||
|
|
Loading…
Add table
Reference in a new issue