hr_lite 0.20.1 → 0.20.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d52aa888b9029219bfde72b9d7eabcae22691d9bb5ec73ec6a924191cdf8ac2
4
- data.tar.gz: b1e9c215421a30a9c521059c90349db86276f0e74f3ac4c7eb4a34a05ca2cd2b
3
+ metadata.gz: 36aafaef8b40a06e92550352b9b1b316d793185ffa871c2a872430c44a88d23c
4
+ data.tar.gz: 957a8842a0ce1fa20e200c9cd0795a9c75eeff204be0d39aa9198781fcfc13ed
5
5
  SHA512:
6
- metadata.gz: 349fcb87fb86b6ee48633227123a83e712bdd5486cda707de5f3c70d8f2b4df941747610fbf5a817336ece750f4c3d28727559faff4997c840a1fd598be83499
7
- data.tar.gz: a1c509e0a1189eeac70b67ab848ab04b3507ce85ce456d17396dca9419911187fd26021bbb997d779f07d6d51835e58c105dd4b52f0a7d3ee788899a3781ca9d
6
+ metadata.gz: e7eeeb898e3798322fdf75539115586a9513b8c048edd51b89af45bba9cc37d7577e4645cf1b3c6707158b1c51d49195d2d803dddcab5dae2990b6607a6a8772
7
+ data.tar.gz: 74eb90b519e1ca6f7ece2261bbf02f4e0cc094ebbd6faf054eb1945af71a4d4c950551ce7d10c353b14e652bbe2af3ce9978d7af4a729882f3e87214ba76549d
data/CHANGELOG.md CHANGED
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.20.2] - 2026-10-05
11
+
12
+ No migration.
13
+
14
+ ### Changed
15
+
16
+ - **Leave team notice goes out on apply, by email too.** The whole team
17
+ (minus the applicant) gets the bell and an email the moment leave is
18
+ applied, not after approval. The reason is still left out. Hosts can
19
+ mute either channel with the `leave.team_notice` matrix row.
20
+ - **A blocked location holds the punch.** Browsers ask for location once;
21
+ after a "Don't allow" every later punch was filed without GPS and
22
+ flagged. The punch now waits and tells the employee to allow location,
23
+ then tap again. Timeout and no-GPS devices still punch (and flag).
24
+ - Team attendance board: "Fix / month" is now "Edit / half day", the
25
+ screen where HR changes a marked day to a half day.
26
+
10
27
  ## [0.20.1] - 2026-10-03
11
28
 
12
29
  Security fixes. No migration.
@@ -6,7 +6,7 @@
6
6
  // <button type="submit">…</button>
7
7
  // <span data-hrl-geo-status hidden></span>
8
8
  // </form>
9
- // The punch NEVER blocks on GPS: denied/timeout/unavailable submit anyway
9
+ // A denied permission holds the punch; timeout/unavailable submit anyway
10
10
  // with geo_status set; the server flags them.
11
11
  (function () {
12
12
  "use strict";
@@ -45,7 +45,15 @@
45
45
  send("ok");
46
46
  },
47
47
  function (err) {
48
- send(err && err.code === 1 ? "denied" : "timeout");
48
+ // Browsers ask only once; a past "Don't allow" denies silently forever.
49
+ // Hold the punch so it is never filed (and flagged) without GPS.
50
+ if (err && err.code === 1) {
51
+ locating = false;
52
+ if (button) { button.disabled = false; button.removeAttribute("aria-busy"); }
53
+ if (label) label.textContent = "Location is blocked. Allow location for this site in your browser settings, then tap again.";
54
+ return;
55
+ }
56
+ send("timeout");
49
57
  },
50
58
  { enableHighAccuracy: true, timeout: 10000, maximumAge: 60000 }
51
59
  );
@@ -25,6 +25,7 @@ module HrLite
25
25
 
26
26
  before_validation :cache_days_count, on: :create
27
27
  after_create :notify_requested, unless: :recorded_by_hr?
28
+ after_create :notify_team
28
29
 
29
30
  scope :pending, -> { where(status: "pending") }
30
31
  scope :approved, -> { where(status: "approved") }
@@ -171,7 +172,6 @@ module HrLite
171
172
  return false if insufficient
172
173
 
173
174
  notify_decision("Leave approved")
174
- notify_team
175
175
  true
176
176
  end
177
177
 
@@ -247,8 +247,8 @@ module HrLite
247
247
  )
248
248
  end
249
249
 
250
- # Everyone should know a colleague will be away — bell + email to the
251
- # whole team (matrix row "leave.team_notice"; hosts can mute either
250
+ # Everyone should know a colleague will be away, the moment they apply —
251
+ # bell + email to the whole team (matrix row "leave.team_notice"; hosts can mute either
252
252
  # channel). Deliberately excludes the reason: dates are team-relevant,
253
253
  # the why is not.
254
254
  def notify_team
@@ -43,7 +43,7 @@
43
43
  <% if record&.regularized? %><span class="hrl-badge">Fixed</span><% end %>
44
44
  </td>
45
45
  <td data-label="">
46
- <a class="hrl-small" href="<%= hr_lite.admin_attendance_path(employee.id, date: @date, month: @date.strftime("%Y-%m")) %>">Fix / month</a>
46
+ <a class="hrl-small" href="<%= hr_lite.admin_attendance_path(employee.id, date: @date, month: @date.strftime("%Y-%m")) %>">Edit / half day</a>
47
47
  </td>
48
48
  </tr>
49
49
  <% end %>
@@ -51,7 +51,7 @@ module HrLite
51
51
  "resignation.withdrawn" => { bell: true, email: false, leadership_email: true, leadership_bell: false },
52
52
  "employee.onboarded" => { bell: true, email: true, leadership_email: true, leadership_bell: false },
53
53
  "payroll.draft_ready" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
54
- "leave.team_notice" => { bell: true, email: false, leadership_email: false, leadership_bell: false },
54
+ "leave.team_notice" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
55
55
  "comp_off.requested" => { bell: true, email: false, leadership_email: true, leadership_bell: true },
56
56
  "comp_off.approved" => { bell: true, email: true, leadership_email: true, leadership_bell: false },
57
57
  "comp_off.rejected" => { bell: true, email: true, leadership_email: false, leadership_bell: false },
@@ -1,3 +1,3 @@
1
1
  module HrLite
2
- VERSION = "0.20.1"
2
+ VERSION = "0.20.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hr_lite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.1
4
+ version: 0.20.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kshitiz sinha