From 842e7008c2937335113990d9cf13cefc8d5d2501 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Fri, 17 May 2013 06:57:35 +0400 Subject: [PATCH] split off marks into a separate module... Signed-off-by: Alex A. Naanou --- ui/base.js | 104 ------------------------------- ui/data.js | 45 -------------- ui/index.html | 1 + ui/marks.js | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 169 insertions(+), 149 deletions(-) create mode 100755 ui/marks.js diff --git a/ui/base.js b/ui/base.js index 27324234..1368d0af 100755 --- a/ui/base.js +++ b/ui/base.js @@ -837,110 +837,6 @@ function shiftImageDownNewRibbon(image, moving){ -/*********************************************************** Marks ***/ - -// XXX shifting images and unmarking in this mode do not work correctly... -var toggleMarkesView = createCSSClassToggler('.viewer', 'marks-visible', - function(){ - var cur = $('.current.image') - // current is marked... - if(cur.hasClass('marked')){ - centerView(null, 'css') - return - } - // there is a marked image in this ribbon... - var target = getImageBefore(cur, null) - if(target.length > 0){ - centerView(focusImage(target), 'css') - return - } - // get marked image from other ribbons... - prevRibbon() - if($('.current.image').hasClass('marked')){ - return - } - nextRibbon() - }) - - -// XXX if this unmarks an image in marked-only mode no visible image is -// going to be current... -var toggleImageMark = createCSSClassToggler('.current.image', 'marked', - function(action){ - toggleMarkesView('on') - $('.viewer').trigger('togglingMark', [$('.current.image'), action]) - }) - - -// mode can be: -// - 'ribbon' -// - 'all' -function removeImageMarks(mode){ - // remove marks from current ribbon (default)... - if(mode == 'ribbon' || mode == null){ - var ribbon = getRibbon() - $('.viewer').trigger('removeingRibbonMarks', [ribbon]) - return ribbon - .find('.marked') - .removeClass('marked') - - // remove all marks... - } else if(mode == 'all'){ - $('.viewer').trigger('removeingAllMarks') - return $('.marked') - .removeClass('marked') - } -} - - -function markAll(mode){ - // remove marks from current ribbon (default)... - if(mode == 'ribbon' || mode == null){ - var ribbon = getRibbon() - $('.viewer').trigger('markingRibbon', [ribbon]) - return ribbon - .find('.image:not(.marked)') - .addClass('marked') - - } else if(mode == 'all'){ - $('.viewer').trigger('markingAll') - return $('.image:not(.marked)').addClass('marked') - } -} - - -// NOTE: this only does it's work in the current ribbon... -function invertImageMarks(){ - var ribbon = getRibbon() - $('.viewer').trigger('invertingMarks', [ribbon]) - return ribbon - .find('.image') - .toggleClass('marked') -} - - -// Toggle marks in the current continuous section of marked or unmarked -// images... -// XXX need to make this dynamic data compatible... -function toggleImageMarkBlock(image){ - if(image == null){ - image = $('.current.image') - } - //$('.viewer').trigger('togglingImageBlockMarks', [image]) - // we need to invert this... - var state = toggleImageMark() - var _convert = function(){ - if(toggleImageMark(this, '?') == state){ - return false - } - toggleImageMark(this, state) - } - image.nextAll('.image').each(_convert) - image.prevAll('.image').each(_convert) - return state -} - - /********************************************************************** diff --git a/ui/data.js b/ui/data.js index fa9fe176..0af3fecf 100755 --- a/ui/data.js +++ b/ui/data.js @@ -590,51 +590,6 @@ function preCacheAllRibbons(){ -/********************************************************************** -* Marking -*/ - -function loadMarkedOnlyData(cmp){ - cmp = cmp == null ? imageDateCmp : cmp - var cur = DATA.current - var marked = MARKED.slice().sort(cmp) - ALL_DATA = DATA - DATA = { - varsion: '2.0', - current: null, - ribbons: [ - marked - ], - //order: marked.slice(), - order: DATA.order, - images: DATA.images, - } - DATA.current = getGIDBefore(cur, 0) - loadData(DATA) - toggleMarkesView('off') - return DATA -} - - -// XXX name this in a better way... -function loadAllImages(){ - DATA = ALL_DATA - loadData(DATA) - return DATA -} - - -var toggleMarkedOnlyView = createCSSClassToggler('.viewer', 'marked-only-view', - function(action){ - if(action == 'on'){ - loadMarkedOnlyData() - } else { - loadAllImages() - } - }) - - - /********************************************************************** * Setup */ diff --git a/ui/index.html b/ui/index.html index 07b0f0c2..1a5da44f 100755 --- a/ui/index.html +++ b/ui/index.html @@ -261,6 +261,7 @@ body { + diff --git a/ui/marks.js b/ui/marks.js new file mode 100755 index 00000000..93373d67 --- /dev/null +++ b/ui/marks.js @@ -0,0 +1,168 @@ +/********************************************************************** +* +* +* +**********************************************************************/ + +//var DEBUG = DEBUG != null ? DEBUG : true + + +/*********************************************************************/ + +/********************************************************************** +* Modes +*/ + +function loadMarkedOnlyData(cmp){ + cmp = cmp == null ? imageDateCmp : cmp + var cur = DATA.current + var marked = MARKED.slice().sort(cmp) + ALL_DATA = DATA + DATA = { + varsion: '2.0', + current: null, + ribbons: [ + marked + ], + //order: marked.slice(), + order: DATA.order, + images: DATA.images, + } + DATA.current = getGIDBefore(cur, 0) + loadData(DATA) + toggleMarkesView('off') + return DATA +} + + +// XXX name this in a better way... +function loadAllImages(){ + DATA = ALL_DATA + loadData(DATA) + return DATA +} + + +var toggleMarkedOnlyView = createCSSClassToggler('.viewer', 'marked-only-view', + function(action){ + if(action == 'on'){ + loadMarkedOnlyData() + } else { + loadAllImages() + } + }) + + + + + +// XXX shifting images and unmarking in this mode do not work correctly... +var toggleMarkesView = createCSSClassToggler('.viewer', 'marks-visible', + function(){ + var cur = $('.current.image') + // current is marked... + if(cur.hasClass('marked')){ + centerView(null, 'css') + return + } + // there is a marked image in this ribbon... + var target = getImageBefore(cur, null) + if(target.length > 0){ + centerView(focusImage(target), 'css') + return + } + // get marked image from other ribbons... + prevRibbon() + if($('.current.image').hasClass('marked')){ + return + } + nextRibbon() + }) + + +/********************************************************************** +* Actions +*/ + +// XXX if this unmarks an image in marked-only mode no visible image is +// going to be current... +var toggleImageMark = createCSSClassToggler('.current.image', 'marked', + function(action){ + toggleMarkesView('on') + $('.viewer').trigger('togglingMark', [$('.current.image'), action]) + }) + + +// mode can be: +// - 'ribbon' +// - 'all' +function removeImageMarks(mode){ + // remove marks from current ribbon (default)... + if(mode == 'ribbon' || mode == null){ + var ribbon = getRibbon() + $('.viewer').trigger('removeingRibbonMarks', [ribbon]) + return ribbon + .find('.marked') + .removeClass('marked') + + // remove all marks... + } else if(mode == 'all'){ + $('.viewer').trigger('removeingAllMarks') + return $('.marked') + .removeClass('marked') + } +} + + +function markAll(mode){ + // remove marks from current ribbon (default)... + if(mode == 'ribbon' || mode == null){ + var ribbon = getRibbon() + $('.viewer').trigger('markingRibbon', [ribbon]) + return ribbon + .find('.image:not(.marked)') + .addClass('marked') + + } else if(mode == 'all'){ + $('.viewer').trigger('markingAll') + return $('.image:not(.marked)').addClass('marked') + } +} + + +// NOTE: this only does it's work in the current ribbon... +function invertImageMarks(){ + var ribbon = getRibbon() + $('.viewer').trigger('invertingMarks', [ribbon]) + return ribbon + .find('.image') + .toggleClass('marked') +} + + +// Toggle marks in the current continuous section of marked or unmarked +// images... +// XXX need to make this dynamic data compatible... +function toggleImageMarkBlock(image){ + if(image == null){ + image = $('.current.image') + } + //$('.viewer').trigger('togglingImageBlockMarks', [image]) + // we need to invert this... + var state = toggleImageMark() + var _convert = function(){ + if(toggleImageMark(this, '?') == state){ + return false + } + toggleImageMark(this, state) + } + image.nextAll('.image').each(_convert) + image.prevAll('.image').each(_convert) + return state +} + + + + +/********************************************************************** +* vim:set ts=4 sw=4 : */