From 1189b71029d668350cdadbe306e1ba53813b52f5 Mon Sep 17 00:00:00 2001 From: ccd0 Date: Wed, 14 May 2014 14:16:16 -0700 Subject: [PATCH] this seems to be a common pattern --- src/Filtering/PostHiding.coffee | 15 +++++---------- src/Filtering/ThreadHiding.coffee | 3 +-- src/General/Header.coffee | 24 ++++++++---------------- src/General/Index.coffee | 17 +++++------------ src/General/Settings.coffee | 7 +++++-- src/General/UI.coffee | 14 +++++++++++--- src/Images/FappeTyme.coffee | 7 +++---- src/Images/Gallery.coffee | 4 +--- src/Miscellaneous/CatalogLinks.coffee | 6 ++---- src/Monitoring/ThreadUpdater.coffee | 6 ++---- src/Monitoring/ThreadWatcher.coffee | 6 ++---- 11 files changed, 45 insertions(+), 64 deletions(-) diff --git a/src/Filtering/PostHiding.coffee b/src/Filtering/PostHiding.coffee index ffee654e4..36da5697d 100755 --- a/src/Filtering/PostHiding.coffee +++ b/src/Filtering/PostHiding.coffee @@ -35,12 +35,9 @@ PostHiding = href: 'javascript:;' $.on apply, 'click', PostHiding.menu.hide - thisPost = $.el 'label', - innerHTML: ' This post' - replies = $.el 'label', - innerHTML: " Hide replies" - makeStub = $.el 'label', - innerHTML: " Make stub" + thisPost = UI.checkbox 'thisPost', ' This post', true + replies = UI.checkbox 'replies', ' Hide replies', Conf['Recursive Hiding'] + makeStub = UI.checkbox 'makeStub', ' Make stub', Conf['Stubs'] $.event 'AddMenuEntry', type: 'post' @@ -71,10 +68,8 @@ PostHiding = href: 'javascript:;' $.on apply, 'click', PostHiding.menu.show - thisPost = $.el 'label', - innerHTML: ' This post' - replies = $.el 'label', - innerHTML: " Show replies" + thisPost = UI.checkbox 'thisPost', ' This post', false + replies = UI.checkbox 'replies', ' Show replies', false hideStubLink = $.el 'a', textContent: 'Hide stub' href: 'javascript:;' diff --git a/src/Filtering/ThreadHiding.coffee b/src/Filtering/ThreadHiding.coffee index 615deedf8..e53efbcbc 100755 --- a/src/Filtering/ThreadHiding.coffee +++ b/src/Filtering/ThreadHiding.coffee @@ -80,8 +80,7 @@ ThreadHiding = href: 'javascript:;' $.on apply, 'click', ThreadHiding.menu.hide - makeStub = $.el 'label', - innerHTML: " Make stub" + makeStub = UI.checkbox 'Stubs', ' Make stub' $.event 'AddMenuEntry', type: 'post' diff --git a/src/General/Header.coffee b/src/General/Header.coffee index 6fbb23b68..206377653 100755 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -6,22 +6,14 @@ Header = className: 'menu-button' innerHTML: '' - barFixedToggler = $.el 'label', - innerHTML: ' Fixed Header' - headerToggler = $.el 'label', - innerHTML: ' Auto-hide header' - scrollHeaderToggler = $.el 'label', - innerHTML: ' Auto-hide header on scroll' - barPositionToggler = $.el 'label', - innerHTML: ' Bottom header' - linkJustifyToggler = $.el 'label', - innerHTML: " Centered links" - customNavToggler = $.el 'label', - innerHTML: ' Custom board navigation' - footerToggler = $.el 'label', - innerHTML: " Hide bottom board list" - shortcutToggler = $.el 'label', - innerHTML: " Shortcut Icons" + barFixedToggler = UI.checkbox 'Fixed Header', ' Fixed Header' + headerToggler = UI.checkbox 'Header auto-hide', ' Auto-hide header' + scrollHeaderToggler = UI.checkbox 'Header auto-hide on scroll', ' Auto-hide header on scroll' + barPositionToggler = UI.checkbox 'Bottom Header', ' Bottom header' + linkJustifyToggler = UI.checkbox 'Centered links', ' Centered links' + customNavToggler = UI.checkbox 'Custom Board Navigation', ' Custom board navigation' + footerToggler = UI.checkbox 'Bottom Board List', ' Hide bottom board list' + shortcutToggler = UI.checkbox 'Shortcut Icons', ' Shortcut Icons' editCustomNav = $.el 'a', textContent: 'Edit custom board navigation' href: 'javascript:;' diff --git a/src/General/Index.coffee b/src/General/Index.coffee index 5f1b054a9..5580932da 100644 --- a/src/General/Index.coffee +++ b/src/General/Index.coffee @@ -40,21 +40,14 @@ Index = $.on input, 'change', $.cb.value $.on input, 'change', @cb.sort - repliesEntry = - el: $.el 'label', - innerHTML: ' Show replies' - anchorEntry = - el: $.el 'label', - innerHTML: ' Anchor hidden threads' - title: 'Move hidden threads at the end of the index.' - refNavEntry = - el: $.el 'label', - innerHTML: ' Refreshed navigation' - title: 'Refresh index when navigating through pages.' + repliesEntry = el: UI.checkbox 'Show Replies', ' Show replies' + anchorEntry = el: UI.checkbox 'Anchor Hidden Threads', ' Anchor hidden threads' + refNavEntry = el: UI.checkbox 'Refreshed Navigation', ' Refreshed navigation' + anchorEntry.el.title = 'Move hidden threads at the end of the index.' + refNavEntry.el.title = 'Refresh index when navigating through pages.' for label in [repliesEntry, anchorEntry, refNavEntry] input = label.el.firstChild {name} = input - input.checked = Conf[name] $.on input, 'change', $.cb.checked switch name when 'Show Replies' diff --git a/src/General/Settings.coffee b/src/General/Settings.coffee index dbf8d60ba..a2aefd8f5 100755 --- a/src/General/Settings.coffee +++ b/src/General/Settings.coffee @@ -95,8 +95,11 @@ Settings = innerHTML: "#{key}" for key, arr of obj description = arr[1] - div = $.el 'div', - innerHTML: ": #{description}" + div = $.el 'div' + $.add div, [ + UI.checkbox key, key, false + $.el 'span', class: 'description', textContent: ": #{description}" + ] input = $ 'input', div $.on input, 'change', $.cb.checked items[key] = Conf[key] diff --git a/src/General/UI.coffee b/src/General/UI.coffee index 361e2fa17..6d3aad8fa 100755 --- a/src/General/UI.coffee +++ b/src/General/UI.coffee @@ -373,9 +373,17 @@ UI = do -> <% } %> @cb.call @ if @cb + checkbox = (name, text, checked) -> + checked = Conf[name] unless checked? + label = $.el 'label' + input = $.el 'input', {type: 'checkbox', name, checked} + $.add label, [input, $.tn text] + label + return { - dialog: dialog - Menu: Menu - hover: hoverstart + dialog: dialog + Menu: Menu + hover: hoverstart + checkbox: checkbox } diff --git a/src/Images/FappeTyme.coffee b/src/Images/FappeTyme.coffee index 200907e1d..a48b934e8 100755 --- a/src/Images/FappeTyme.coffee +++ b/src/Images/FappeTyme.coffee @@ -4,9 +4,8 @@ FappeTyme = for type in ["Fappe", "Werk"] when Conf["#{type} Tyme"] lc = type.toLowerCase() - el = $.el 'label', - innerHTML: " #{type} Tyme" - title: "#{type} Tyme" + el = UI.checkbox lc, " #{type} Tyme", false + el.title = "#{type} Tyme" FappeTyme[lc] = input = el.firstElementChild $.on input, 'change', FappeTyme.cb.toggle.bind input @@ -34,4 +33,4 @@ FappeTyme = toggle: -> Conf[@name] = !Conf[@name] FappeTyme.cb.set @name - $.cb.checked.call FappeTyme[@name] \ No newline at end of file + $.cb.checked.call FappeTyme[@name] diff --git a/src/Images/Gallery.coffee b/src/Images/Gallery.coffee index d5223e664..cecdfa8bd 100644 --- a/src/Images/Gallery.coffee +++ b/src/Images/Gallery.coffee @@ -258,12 +258,10 @@ Gallery = subEntries: subEntries createSubEntry: (name) -> - label = $.el 'label', - innerHTML: " #{name}" + label = UI.checkbox name, " #{name}" input = label.firstElementChild if name in ['Fit Width', 'Fit Height', 'Hide Thumbnails'] $.on input, 'change', Gallery.cb.setFitness - input.checked = Conf[name] $.event 'change', null, input $.on input, 'change', $.cb.checked el: label diff --git a/src/Miscellaneous/CatalogLinks.coffee b/src/Miscellaneous/CatalogLinks.coffee index cf9b52e62..9d2afc6e3 100755 --- a/src/Miscellaneous/CatalogLinks.coffee +++ b/src/Miscellaneous/CatalogLinks.coffee @@ -1,10 +1,8 @@ CatalogLinks = init: -> return unless Conf['Catalog Links'] - CatalogLinks.el = el = $.el 'label', - id: 'toggleCatalog' - href: 'javascript:;' - innerHTML: " Catalog Links" + CatalogLinks.el = el = UI.checkbox 'Header catalog links', ' Catalog Links' + el.id = 'toggleCatalog' input = $ 'input', el $.on input, 'change', @toggle diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index 9568fec01..d1aa85a9d 100755 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -27,10 +27,8 @@ ThreadUpdater = subEntries = [] for name, conf of Config.updater.checkbox - checked = if Conf[name] then 'checked' else '' - el = $.el 'label', - title: "#{conf[1]}" - innerHTML: " #{name}" + el = UI.checkbox name, " #{name}" + el.title = conf[1] input = el.firstElementChild $.on input, 'change', $.cb.checked if input.name is 'Scroll BG' diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 537114790..27706ddd1 100755 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -302,11 +302,9 @@ ThreadWatcher = createSubEntry: (name, desc) -> entry = type: 'thread watcher' - el: $.el 'label', - innerHTML: " #{name}" - title: desc + el: UI.checkbox name, " #{name}" + entry.el.title = desc input = entry.el.firstElementChild - input.checked = Conf[name] $.on input, 'change', $.cb.checked $.on input, 'change', ThreadWatcher.refresh if name is 'Current Board' entry