doing 2.1.105 → 2.1.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +1 -1
  5. data/docs/doc/Array.html +3 -3
  6. data/docs/doc/BooleanTermParser/Clause.html +3 -3
  7. data/docs/doc/BooleanTermParser/Operator.html +3 -3
  8. data/docs/doc/BooleanTermParser/Query.html +3 -3
  9. data/docs/doc/BooleanTermParser/QueryParser.html +3 -3
  10. data/docs/doc/BooleanTermParser/QueryTransformer.html +3 -3
  11. data/docs/doc/BooleanTermParser.html +3 -3
  12. data/docs/doc/Doing/ArrayCleanup.html +3 -3
  13. data/docs/doc/Doing/ArrayNestedHash.html +3 -3
  14. data/docs/doc/Doing/ArrayTags.html +9 -9
  15. data/docs/doc/Doing/ByDayExport.html +3 -3
  16. data/docs/doc/Doing/CSVExport.html +3 -3
  17. data/docs/doc/Doing/CalendarImport.html +3 -3
  18. data/docs/doc/Doing/Change.html +3 -3
  19. data/docs/doc/Doing/Changes.html +3 -3
  20. data/docs/doc/Doing/ChronifyArray.html +3 -3
  21. data/docs/doc/Doing/ChronifyNumeric.html +3 -3
  22. data/docs/doc/Doing/ChronifyString.html +6 -6
  23. data/docs/doc/Doing/Color.html +16 -16
  24. data/docs/doc/Doing/Completion/BashCompletions.html +3 -3
  25. data/docs/doc/Doing/Completion/FigCompletions.html +3 -3
  26. data/docs/doc/Doing/Completion/FishCompletions.html +3 -3
  27. data/docs/doc/Doing/Completion/StringUtils.html +3 -3
  28. data/docs/doc/Doing/Completion/ZshCompletions.html +3 -3
  29. data/docs/doc/Doing/Completion.html +3 -3
  30. data/docs/doc/Doing/Configuration.html +3 -3
  31. data/docs/doc/Doing/DayOneRenderer.html +3 -3
  32. data/docs/doc/Doing/DayoneExport.html +3 -3
  33. data/docs/doc/Doing/DoingExport.html +3 -3
  34. data/docs/doc/Doing/DoingImport.html +3 -3
  35. data/docs/doc/Doing/Entry.html +3 -3
  36. data/docs/doc/Doing/Errors/DoingNoTraceError.html +3 -3
  37. data/docs/doc/Doing/Errors/DoingRuntimeError.html +3 -3
  38. data/docs/doc/Doing/Errors/DoingStandardError.html +3 -3
  39. data/docs/doc/Doing/Errors/EmptyInput.html +3 -3
  40. data/docs/doc/Doing/Errors/HistoryLimitError.html +3 -3
  41. data/docs/doc/Doing/Errors/InvalidPlugin.html +3 -3
  42. data/docs/doc/Doing/Errors/MissingBackupFile.html +3 -3
  43. data/docs/doc/Doing/Errors/NoResults.html +3 -3
  44. data/docs/doc/Doing/Errors/PluginException.html +3 -3
  45. data/docs/doc/Doing/Errors/UserCancelled.html +3 -3
  46. data/docs/doc/Doing/Errors/WrongCommand.html +3 -3
  47. data/docs/doc/Doing/Errors.html +3 -3
  48. data/docs/doc/Doing/HTMLExport.html +3 -3
  49. data/docs/doc/Doing/Hooks.html +3 -3
  50. data/docs/doc/Doing/Item.html +3 -3
  51. data/docs/doc/Doing/ItemDates.html +3 -3
  52. data/docs/doc/Doing/ItemQuery.html +3 -3
  53. data/docs/doc/Doing/ItemState.html +3 -3
  54. data/docs/doc/Doing/ItemTags.html +3 -3
  55. data/docs/doc/Doing/Items.html +3 -3
  56. data/docs/doc/Doing/JSONExport.html +3 -3
  57. data/docs/doc/Doing/JSONImport.html +3 -3
  58. data/docs/doc/Doing/Logger.html +3 -3
  59. data/docs/doc/Doing/MarkdownExport.html +3 -3
  60. data/docs/doc/Doing/Note.html +3 -3
  61. data/docs/doc/Doing/Pager.html +3 -3
  62. data/docs/doc/Doing/Plugins.html +3 -3
  63. data/docs/doc/Doing/Prompt.html +3 -3
  64. data/docs/doc/Doing/PromptChoose.html +3 -3
  65. data/docs/doc/Doing/PromptFZF.html +3 -3
  66. data/docs/doc/Doing/PromptInput.html +3 -3
  67. data/docs/doc/Doing/PromptSTD.html +3 -3
  68. data/docs/doc/Doing/PromptYN.html +3 -3
  69. data/docs/doc/Doing/Section.html +3 -3
  70. data/docs/doc/Doing/StringHighlight.html +3 -3
  71. data/docs/doc/Doing/StringNormalize.html +3 -3
  72. data/docs/doc/Doing/StringQuery.html +4 -4
  73. data/docs/doc/Doing/StringTags.html +3 -3
  74. data/docs/doc/Doing/StringTransform.html +3 -3
  75. data/docs/doc/Doing/StringTruncate.html +3 -3
  76. data/docs/doc/Doing/StringURL.html +3 -3
  77. data/docs/doc/Doing/SymbolNormalize.html +3 -3
  78. data/docs/doc/Doing/TaskPaperExport.html +3 -3
  79. data/docs/doc/Doing/TemplateExport.html +3 -3
  80. data/docs/doc/Doing/TemplateString.html +3 -3
  81. data/docs/doc/Doing/TimingImport.html +3 -3
  82. data/docs/doc/Doing/Types.html +3 -3
  83. data/docs/doc/Doing/Util/Backup.html +3 -3
  84. data/docs/doc/Doing/Util.html +4 -4
  85. data/docs/doc/Doing/Version.html +3 -3
  86. data/docs/doc/Doing/WWID.html +3 -3
  87. data/docs/doc/Doing.html +4 -4
  88. data/docs/doc/FalseClass.html +3 -3
  89. data/docs/doc/GLI/Commands/Help.html +3 -3
  90. data/docs/doc/GLI/Commands/MarkdownDocumentListener.html +3 -3
  91. data/docs/doc/GLI/Commands.html +3 -3
  92. data/docs/doc/GLI.html +3 -3
  93. data/docs/doc/Hash.html +4 -4
  94. data/docs/doc/Numeric.html +3 -3
  95. data/docs/doc/Object.html +3 -3
  96. data/docs/doc/PhraseParser/Operator.html +3 -3
  97. data/docs/doc/PhraseParser/PhraseClause.html +3 -3
  98. data/docs/doc/PhraseParser/Query.html +3 -3
  99. data/docs/doc/PhraseParser/QueryParser.html +3 -3
  100. data/docs/doc/PhraseParser/QueryTransformer.html +3 -3
  101. data/docs/doc/PhraseParser/TermClause.html +3 -3
  102. data/docs/doc/PhraseParser.html +3 -3
  103. data/docs/doc/Status.html +3 -3
  104. data/docs/doc/String.html +3 -3
  105. data/docs/doc/Symbol.html +3 -3
  106. data/docs/doc/Time.html +3 -3
  107. data/docs/doc/TrueClass.html +3 -3
  108. data/docs/doc/_index.html +4 -4
  109. data/docs/doc/class_list.html +6 -3
  110. data/docs/doc/css/full_list.css +3 -3
  111. data/docs/doc/css/style.css +8 -15
  112. data/docs/doc/file.README.html +4 -4
  113. data/docs/doc/file_list.html +5 -2
  114. data/docs/doc/frames.html +1 -1
  115. data/docs/doc/index.html +4 -4
  116. data/docs/doc/js/app.js +348 -267
  117. data/docs/doc/js/full_list.js +52 -24
  118. data/docs/doc/method_list.html +5 -2
  119. data/docs/doc/top-level-namespace.html +3 -3
  120. data/doing.rdoc +1 -1
  121. data/lib/doing/configuration.rb +1 -0
  122. data/lib/doing/version.rb +1 -1
  123. metadata +2 -2
@@ -20,17 +20,6 @@ function escapeShortcut() {
20
20
  });
21
21
  }
22
22
 
23
- function navResizer() {
24
- $(window).mousemove(function(e) {
25
- window.parent.postMessage({
26
- action: 'mousemove', event: {pageX: e.pageX, which: e.which}
27
- }, '*');
28
- }).mouseup(function(e) {
29
- window.parent.postMessage({action: 'mouseup'}, '*');
30
- });
31
- window.parent.postMessage("navReady", "*");
32
- }
33
-
34
23
  function clearSearchTimeout() {
35
24
  clearTimeout(searchTimeout);
36
25
  searchTimeout = null;
@@ -44,14 +33,21 @@ function enableLinks() {
44
33
  $clicked.addClass('clicked');
45
34
  evt.stopPropagation();
46
35
 
47
- if (evt.target.tagName === 'A') return true;
36
+ if (window.origin === "null") {
37
+ if (evt.target.tagName === 'A') return true;
48
38
 
49
- var elem = $clicked.find('> .item .object_link a')[0];
50
- var e = evt.originalEvent;
51
- var newEvent = new MouseEvent(evt.originalEvent.type);
52
- newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
53
- elem.dispatchEvent(newEvent);
54
- evt.preventDefault();
39
+ var elem = $clicked.find('> .item .object_link a')[0];
40
+ var e = evt.originalEvent;
41
+ var newEvent = new MouseEvent(evt.originalEvent.type);
42
+ newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
43
+ elem.dispatchEvent(newEvent);
44
+ evt.preventDefault();
45
+ } else {
46
+ window.top.postMessage({
47
+ action: "navigate",
48
+ url: $clicked.find('.object_link a').attr('href'),
49
+ }, "*");
50
+ }
55
51
  return false;
56
52
  });
57
53
  }
@@ -62,8 +58,25 @@ function enableToggles() {
62
58
  evt.stopPropagation();
63
59
  evt.preventDefault();
64
60
  $(this).parent().parent().toggleClass('collapsed');
61
+ $(this).attr('aria-expanded', function (i, attr) {
62
+ return attr == 'true' ? 'false' : 'true'
63
+ });
65
64
  highlight();
66
65
  });
66
+
67
+ // navigation of nested classes using keyboard
68
+ $('#full_list a.toggle').on('keypress',function(evt) {
69
+ // enter key is pressed
70
+ if (evt.which == 13) {
71
+ evt.stopPropagation();
72
+ evt.preventDefault();
73
+ $(this).parent().parent().toggleClass('collapsed');
74
+ $(this).attr('aria-expanded', function (i, attr) {
75
+ return attr == 'true' ? 'false' : 'true'
76
+ });
77
+ highlight();
78
+ }
79
+ });
67
80
  }
68
81
 
69
82
  function populateSearchCache() {
@@ -91,7 +104,7 @@ function enableSearch() {
91
104
  }
92
105
  });
93
106
 
94
- $('#full_list').after("<div id='noresults' style='display:none'></div>");
107
+ $('#full_list').after("<div id='noresults' role='status' style='display: none'></div>");
95
108
  }
96
109
 
97
110
  function ignoredKeyPress(event) {
@@ -154,11 +167,14 @@ function partialSearch(searchString, offset) {
154
167
  function searchDone() {
155
168
  searchTimeout = null;
156
169
  highlight();
157
- if ($('#full_list li:visible').size() === 0) {
158
- $('#noresults').text('No results were found.').hide().fadeIn();
170
+ var found = $('#full_list li:visible').size();
171
+ if (found === 0) {
172
+ $('#noresults').text('No results were found.');
159
173
  } else {
160
- $('#noresults').text('').hide();
174
+ // This is read out to screen readers
175
+ $('#noresults').text('There are ' + found + ' results.');
161
176
  }
177
+ $('#noresults').show();
162
178
  $('#content').removeClass('insearch');
163
179
  }
164
180
 
@@ -179,6 +195,13 @@ function highlight() {
179
195
  });
180
196
  }
181
197
 
198
+ function isInView(element) {
199
+ const rect = element.getBoundingClientRect();
200
+ const windowHeight =
201
+ window.innerHeight || document.documentElement.clientHeight;
202
+ return rect.left >= 0 && rect.bottom <= windowHeight;
203
+ }
204
+
182
205
  /**
183
206
  * Expands the tree to the target element and its immediate
184
207
  * children.
@@ -188,7 +211,13 @@ function expandTo(path) {
188
211
  $target.addClass('clicked');
189
212
  $target.removeClass('collapsed');
190
213
  $target.parentsUntil('#full_list', 'li').removeClass('collapsed');
191
- if($target[0]) {
214
+
215
+ $target.find('a.toggle').attr('aria-expanded', 'true')
216
+ $target.parentsUntil('#full_list', 'li').each(function(i, el) {
217
+ $(el).find('> div > a.toggle').attr('aria-expanded', 'true');
218
+ });
219
+
220
+ if($target[0] && !isInView($target[0])) {
192
221
  window.scrollTo(window.scrollX, $target.offset().top - 250);
193
222
  highlight();
194
223
  }
@@ -206,7 +235,6 @@ window.addEventListener("message", windowEvents, false);
206
235
 
207
236
  $(document).ready(function() {
208
237
  escapeShortcut();
209
- navResizer();
210
238
  enableLinks();
211
239
  enableToggles();
212
240
  populateSearchCache();
@@ -1,5 +1,5 @@
1
1
  <!DOCTYPE html>
2
- <html>
2
+ <html >
3
3
  <head>
4
4
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
5
  <meta charset="utf-8" />
@@ -38,7 +38,10 @@
38
38
 
39
39
  </div>
40
40
 
41
- <div id="search">Search: <input type="text" /></div>
41
+ <div id="search">
42
+ <label for="search-class">Search:</label>
43
+ <input id="search-class" type="text" />
44
+ </div>
42
45
  </div>
43
46
 
44
47
  <ul id="full_list" class="method">
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.9.36
9
+ &mdash; Documentation by YARD 0.9.38
10
10
 
11
11
  </title>
12
12
 
@@ -216,9 +216,9 @@
216
216
  </div>
217
217
 
218
218
  <div id="footer">
219
- Generated on Mon Mar 23 08:30:22 2026 by
219
+ Generated on Tue Apr 14 17:46:47 2026 by
220
220
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
221
- 0.9.36 (ruby-4.0.2).
221
+ 0.9.38 (ruby-3.4.4).
222
222
  </div>
223
223
 
224
224
  </div>
data/doing.rdoc CHANGED
@@ -5,7 +5,7 @@ record of what you've been doing, complete with tag-based time tracking. The
5
5
  command line tool allows you to add entries, annotate with tags and notes, and
6
6
  view your entries with myriad options, with a focus on a "natural" language syntax.
7
7
 
8
- v2.1.105
8
+ v2.1.107
9
9
 
10
10
  === Global Options
11
11
  === --config_file arg
@@ -537,6 +537,7 @@ module Doing
537
537
  end
538
538
 
539
539
  def load_plugins(add_dir = nil)
540
+ add_dir = File.expand_path(add_dir) if add_dir
540
541
  FileUtils.mkdir_p(add_dir) if add_dir && !File.exist?(add_dir)
541
542
 
542
543
  Plugins.load_plugins(add_dir)
data/lib/doing/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Doing
4
- VERSION = '2.1.105'
4
+ VERSION = '2.1.107'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doing
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.105
4
+ version: 2.1.107
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brett Terpstra
@@ -944,7 +944,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
944
944
  - !ruby/object:Gem::Version
945
945
  version: '0'
946
946
  requirements: []
947
- rubygems_version: 4.0.6
947
+ rubygems_version: 3.6.7
948
948
  specification_version: 4
949
949
  summary: A command line tool for managing What Was I Doing reminders
950
950
  test_files: []