mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-01 11:50:07 +00:00
split out the history machinery into urlhistory.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
8003ceda29
commit
21f47bfbd1
86
ui/data.js
86
ui/data.js
@ -123,8 +123,6 @@ var SETTINGS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var BASE_URL = '.'
|
var BASE_URL = '.'
|
||||||
var BASE_URL_HISTORY = []
|
|
||||||
var BASE_URL_LIMIT = 10
|
|
||||||
|
|
||||||
var IMAGE_CACHE = []
|
var IMAGE_CACHE = []
|
||||||
|
|
||||||
@ -1621,90 +1619,6 @@ function preCacheAllRibbons(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
|
||||||
* URL history...
|
|
||||||
*/
|
|
||||||
|
|
||||||
function setupBaseURLHistory(){
|
|
||||||
$('.viewer')
|
|
||||||
.on('baseURLChanged', function(evt, old_url, new_url){
|
|
||||||
var updated = false
|
|
||||||
|
|
||||||
// store the old and new urls in history unless they already
|
|
||||||
// exist...
|
|
||||||
if(BASE_URL_HISTORY.indexOf(old_url) < 0){
|
|
||||||
BASE_URL_HISTORY.splice(0, 0, old_url)
|
|
||||||
updated = true
|
|
||||||
}
|
|
||||||
if(BASE_URL_HISTORY.indexOf(new_url) < 0){
|
|
||||||
BASE_URL_HISTORY.splice(0, 0, new_url)
|
|
||||||
updated = true
|
|
||||||
}
|
|
||||||
|
|
||||||
// truncate the history if needed...
|
|
||||||
if(BASE_URL_HISTORY.length > BASE_URL_LIMIT){
|
|
||||||
BASE_URL_HISTORY.splice(BASE_URL_LIMIT, BASE_URL_HISTORY.length)
|
|
||||||
updated = true
|
|
||||||
}
|
|
||||||
|
|
||||||
// XXX is this the right place for this???
|
|
||||||
if(updated){
|
|
||||||
saveLocalStorageBaseURLHistory()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Push a url to top of history...
|
|
||||||
//
|
|
||||||
// NOTE: this does not care if a url exists or not, all other instances
|
|
||||||
// will get removed...
|
|
||||||
function pushURLHistory(url){
|
|
||||||
url = url == null ? BASE_URL : url
|
|
||||||
|
|
||||||
while(BASE_URL_HISTORY.indexOf(url) >= 0){
|
|
||||||
BASE_URL_HISTORY.splice(BASE_URL_HISTORY.indexOf(url), 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
BASE_URL_HISTORY.splice(0, 0, url)
|
|
||||||
|
|
||||||
// XXX is this the right place for this???
|
|
||||||
saveLocalStorageBaseURLHistory()
|
|
||||||
|
|
||||||
return url
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function getURLHistoryPosition(){
|
|
||||||
return BASE_URL_HISTORY.indexOf(BASE_URL)
|
|
||||||
}
|
|
||||||
function getURLHistoryNext(){
|
|
||||||
var res = BASE_URL_HISTORY[ getURLHistoryPosition() - 1]
|
|
||||||
return res == null ? BASE_URL : res
|
|
||||||
}
|
|
||||||
function getURLHistoryPrev(){
|
|
||||||
var res = BASE_URL_HISTORY[ getURLHistoryPosition() + 1 ]
|
|
||||||
return res == null ? BASE_URL : res
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// NOTE: this will not affect history url order...
|
|
||||||
function makeURLHistoryLoader(get, end_msg){
|
|
||||||
return function(){
|
|
||||||
var url = get()
|
|
||||||
if(url != BASE_URL){
|
|
||||||
statusNotify(loadDir(url))
|
|
||||||
} else {
|
|
||||||
showStatusQ('History: '+ end_msg +'...')
|
|
||||||
}
|
|
||||||
return url
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var loadURLHistoryNext = makeURLHistoryLoader(getURLHistoryNext, 'at last URL')
|
|
||||||
var loadURLHistoryPrev = makeURLHistoryLoader(getURLHistoryPrev, 'at first URL')
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Actions...
|
* Actions...
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
<script src="ribbons.js"></script>
|
<script src="ribbons.js"></script>
|
||||||
<script src="data.js"></script>
|
<script src="data.js"></script>
|
||||||
|
<script src="urlhistory.js"></script>
|
||||||
<script src="crop.js"></script>
|
<script src="crop.js"></script>
|
||||||
<script src="sort.js"></script>
|
<script src="sort.js"></script>
|
||||||
<script src="workers.js"></script>
|
<script src="workers.js"></script>
|
||||||
|
|||||||
120
ui/urlhistory.js
Executable file
120
ui/urlhistory.js
Executable file
@ -0,0 +1,120 @@
|
|||||||
|
/**********************************************************************
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
**********************************************************************/
|
||||||
|
|
||||||
|
//var DEBUG = DEBUG != null ? DEBUG : true
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************/
|
||||||
|
|
||||||
|
var BASE_URL_HISTORY = []
|
||||||
|
var BASE_URL_LIMIT = 10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* URL history...
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Setup history event handlers...
|
||||||
|
//
|
||||||
|
// NOTE: this will save history state to localStorage...
|
||||||
|
function setupBaseURLHistory(){
|
||||||
|
$('.viewer')
|
||||||
|
.on('baseURLChanged', function(evt, old_url, new_url){
|
||||||
|
var updated = false
|
||||||
|
|
||||||
|
// store the old and new urls in history unless they already
|
||||||
|
// exist...
|
||||||
|
if(BASE_URL_HISTORY.indexOf(old_url) < 0){
|
||||||
|
BASE_URL_HISTORY.splice(0, 0, old_url)
|
||||||
|
updated = true
|
||||||
|
}
|
||||||
|
if(BASE_URL_HISTORY.indexOf(new_url) < 0){
|
||||||
|
BASE_URL_HISTORY.splice(0, 0, new_url)
|
||||||
|
updated = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// truncate the history if needed...
|
||||||
|
if(BASE_URL_HISTORY.length > BASE_URL_LIMIT){
|
||||||
|
BASE_URL_HISTORY.splice(BASE_URL_LIMIT, BASE_URL_HISTORY.length)
|
||||||
|
updated = true
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXX is this the right place for this???
|
||||||
|
if(updated){
|
||||||
|
saveLocalStorageBaseURLHistory()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Push a url to top of history...
|
||||||
|
//
|
||||||
|
// NOTE: this does not care if a url exists or not, all other instances
|
||||||
|
// will get removed...
|
||||||
|
// NOTE: this will not do any loading...
|
||||||
|
// NOTE: this will save history state to localStorage...
|
||||||
|
function pushURLHistory(url){
|
||||||
|
url = url == null ? BASE_URL : url
|
||||||
|
|
||||||
|
while(BASE_URL_HISTORY.indexOf(url) >= 0){
|
||||||
|
BASE_URL_HISTORY.splice(BASE_URL_HISTORY.indexOf(url), 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
BASE_URL_HISTORY.splice(0, 0, url)
|
||||||
|
|
||||||
|
// XXX is this the right place for this???
|
||||||
|
saveLocalStorageBaseURLHistory()
|
||||||
|
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get current position in history...
|
||||||
|
//
|
||||||
|
function getURLHistoryPosition(){
|
||||||
|
return BASE_URL_HISTORY.indexOf(BASE_URL)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get next/prev relative position in history...
|
||||||
|
//
|
||||||
|
function getURLHistoryNext(){
|
||||||
|
var res = BASE_URL_HISTORY[ getURLHistoryPosition() - 1]
|
||||||
|
return res == null ? BASE_URL : res
|
||||||
|
}
|
||||||
|
function getURLHistoryPrev(){
|
||||||
|
var res = BASE_URL_HISTORY[ getURLHistoryPosition() + 1 ]
|
||||||
|
return res == null ? BASE_URL : res
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* Actions...
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Make a history load action...
|
||||||
|
//
|
||||||
|
// NOTE: this will not affect history url order...
|
||||||
|
function makeURLHistoryLoader(get, end_msg){
|
||||||
|
return function(){
|
||||||
|
var url = get()
|
||||||
|
if(url != BASE_URL){
|
||||||
|
statusNotify(loadDir(url))
|
||||||
|
} else {
|
||||||
|
showStatusQ('History: '+ end_msg +'...')
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var loadURLHistoryNext = makeURLHistoryLoader(getURLHistoryNext, 'at last URL')
|
||||||
|
var loadURLHistoryPrev = makeURLHistoryLoader(getURLHistoryPrev, 'at first URL')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* vim:set ts=4 sw=4 : */
|
||||||
Loading…
x
Reference in New Issue
Block a user