Compare commits
2 Commits
e44e1ffb8a
...
7e808f6528
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e808f6528 | ||
|
|
d702a2df7f |
@@ -36,6 +36,14 @@ EOF
|
|||||||
|
|
||||||
echo "✅ Changes committed successfully"
|
echo "✅ Changes committed successfully"
|
||||||
|
|
||||||
|
# Auto-push to remote repository
|
||||||
|
echo "📤 Pushing to remote repository..."
|
||||||
|
if git push origin main 2>/dev/null; then
|
||||||
|
echo "✅ Successfully pushed to remote"
|
||||||
|
else
|
||||||
|
echo "⚠️ Push failed (remote may be unreachable)"
|
||||||
|
fi
|
||||||
|
|
||||||
# Show short log
|
# Show short log
|
||||||
git log --oneline -3
|
git log --oneline -3
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -102,13 +102,13 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
"Pohotovost IT"
|
"Pohotovost IT"
|
||||||
]
|
]
|
||||||
|
|
||||||
// Add separator column and "Práce mimo směnu" column
|
// Add one more column to the right
|
||||||
titleRow.push("", "") // Empty separator + empty for merged cell
|
titleRow.push("")
|
||||||
dayNameRow.push("", "Práce mimo směnu") // Empty separator + the text
|
dayNameRow.push("")
|
||||||
yearRow.push("", "") // Empty separator + empty for merged cell
|
yearRow.push("")
|
||||||
monthRow.push("", "") // Empty separator + empty for merged cell
|
monthRow.push("")
|
||||||
dateRow.push("", "") // Empty separator + empty for merged cell
|
dateRow.push("")
|
||||||
shiftRow.push("", "") // Empty separator + empty for merged cell
|
shiftRow.push("")
|
||||||
|
|
||||||
const employeeRows = employees.map(name => {
|
const employeeRows = employees.map(name => {
|
||||||
const row = [name]
|
const row = [name]
|
||||||
@@ -263,7 +263,7 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Style weekend days (Saturday/Sunday in day name row and date rows below)
|
// Style weekend days (Saturday/Sunday in day name row and date rows below)
|
||||||
for (let col = 1; col < (data[0]?.length || 0) - 2; col += 2) { // -2 to exclude separator and Práce mimo směnu columns
|
for (let col = 1; col < (data[0]?.length || 0); col += 2) {
|
||||||
const dayName = data[1]?.[col]
|
const dayName = data[1]?.[col]
|
||||||
if (dayName === "Sobota" || dayName === "Neděle") {
|
if (dayName === "Sobota" || dayName === "Neděle") {
|
||||||
const colLetter = getExcelColumnName(col)
|
const colLetter = getExcelColumnName(col)
|
||||||
@@ -281,27 +281,9 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Style the "Práce mimo směnu" column (last column)
|
// Remove formatting specifically from BZ6 and CA6 cells
|
||||||
const totalCols = data[0]?.length || 0
|
styles["BZ6"] = "" // Override any formatting for BZ6
|
||||||
if (totalCols >= 2) {
|
styles["CA6"] = "" // Override any formatting for CA6
|
||||||
const separatorColIndex = totalCols - 2
|
|
||||||
const praceMimoColIndex = totalCols - 1
|
|
||||||
const separatorColLetter = getExcelColumnName(separatorColIndex)
|
|
||||||
const praceMimoColLetter = getExcelColumnName(praceMimoColIndex)
|
|
||||||
|
|
||||||
// Style separator column with left border
|
|
||||||
for (let row = 2; row <= 6; row++) {
|
|
||||||
styles[`${separatorColLetter}${row}`] = "border-left: 2px solid #000000;"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Style "Práce mimo směnu" column
|
|
||||||
styles[`${praceMimoColLetter}2`] = "border: 1px solid #000000; text-align: center; vertical-align: middle; font-weight: bold; height: 50px;"
|
|
||||||
for (let row = 3; row <= 6; row++) {
|
|
||||||
styles[`${praceMimoColLetter}${row}`] = "border-left: 1px solid #000000; border-right: 1px solid #000000;"
|
|
||||||
}
|
|
||||||
// Bottom border for the last row of the merged cell
|
|
||||||
styles[`${praceMimoColLetter}6`] += " border-bottom: 1px solid #000000;"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Initializing jspreadsheet with config:", {
|
console.log("Initializing jspreadsheet with config:", {
|
||||||
@@ -334,10 +316,10 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
const instance = jspreadsheetInstance.current as any
|
const instance = jspreadsheetInstance.current as any
|
||||||
if (instance.setMerge) {
|
if (instance.setMerge) {
|
||||||
try {
|
try {
|
||||||
// Merge all pairs in rows 2, 3, 4, 5 (day names, year, month, day) excluding separator and Práce mimo směnu columns
|
// Merge all pairs in rows 1, 2, 3, 4, 5 (title, day names, year, month, day)
|
||||||
const totalCols = data[0]?.length || 0
|
const totalCols = data[0]?.length || 0
|
||||||
for (let row = 2; row <= 5; row++) {
|
for (let row = 1; row <= 5; row++) {
|
||||||
for (let col = 1; col < totalCols - 2; col += 2) { // -2 to exclude separator and Práce mimo směnu columns
|
for (let col = 1; col < totalCols; col += 2) {
|
||||||
const colLetter = getExcelColumnName(col)
|
const colLetter = getExcelColumnName(col)
|
||||||
try {
|
try {
|
||||||
// Correct syntax: setMerge(cellAddress, colspan, rowspan)
|
// Correct syntax: setMerge(cellAddress, colspan, rowspan)
|
||||||
@@ -347,15 +329,6 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Merge "Práce mimo směnu" column vertically from rows 2-6
|
|
||||||
const praceMimoColIndex = totalCols - 1
|
|
||||||
const praceMimoColLetter = getExcelColumnName(praceMimoColIndex)
|
|
||||||
try {
|
|
||||||
instance.setMerge(`${praceMimoColLetter}2`, 1, 5) // 1 column, 5 rows (2-6)
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error merging Práce mimo směnu column:", error)
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error during merging:", error)
|
console.error("Error during merging:", error)
|
||||||
}
|
}
|
||||||
@@ -375,17 +348,12 @@ export function TimeshiftSpreadsheet({ teamId, teamName }: TimeshiftSpreadsheetP
|
|||||||
if (rows[rowIndex]) {
|
if (rows[rowIndex]) {
|
||||||
const cells = rows[rowIndex].querySelectorAll('td')
|
const cells = rows[rowIndex].querySelectorAll('td')
|
||||||
cells.forEach((cell, cellIndex) => {
|
cells.forEach((cell, cellIndex) => {
|
||||||
// Skip first two columns (row numbers and field labels), separator column, but include Práce mimo směnu
|
// Skip first two columns (row numbers and field labels)
|
||||||
if (cellIndex > 1 && cellIndex < totalCells + 1) { // +1 because of row number column
|
if (cellIndex > 1 && cellIndex < totalCells + 1) { // +1 because of row number column
|
||||||
const originalText = cell.textContent?.trim()
|
const originalText = cell.textContent?.trim()
|
||||||
if (originalText) {
|
if (originalText) {
|
||||||
// Special handling for "Práce mimo směnu" text
|
// Use 12px font for all rotated values (date values, day names, and shifts)
|
||||||
if (originalText === "Práce mimo směnu") {
|
cell.innerHTML = `<div style="transform: rotate(-90deg); font-size: 12px; height: 20px; display: flex; align-items: center; justify-content: center; white-space: nowrap;">${originalText}</div>`
|
||||||
cell.innerHTML = `<div style="transform: rotate(-90deg); font-size: 12px; height: 80px; display: flex; align-items: center; justify-content: center; white-space: nowrap; font-weight: bold;">${originalText}</div>`
|
|
||||||
} else if (cellIndex < totalCells - 1) { // Don't rotate separator column (empty)
|
|
||||||
// Use 12px font for all other rotated values (date values, day names, and shifts)
|
|
||||||
cell.innerHTML = `<div style="transform: rotate(-90deg); font-size: 12px; height: 20px; display: flex; align-items: center; justify-content: center; white-space: nowrap;">${originalText}</div>`
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,2 +1,4 @@
|
|||||||
2025-07-29 14:27:23 +02:00: (node:489145) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
2025-07-29 14:27:23 +02:00: (node:489145) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
||||||
2025-07-29 14:27:23 +02:00: (Use `node --trace-deprecation ...` to show where the warning was created)
|
2025-07-29 14:27:23 +02:00: (Use `node --trace-deprecation ...` to show where the warning was created)
|
||||||
|
2025-07-29 14:54:37 +02:00: (node:652376) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
||||||
|
2025-07-29 14:54:37 +02:00: (Use `node --trace-deprecation ...` to show where the warning was created)
|
||||||
|
|||||||
@@ -30,3 +30,29 @@
|
|||||||
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
||||||
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
||||||
2025-07-29 14:35:46 +02:00: 🔄 Performing auto-commit...
|
2025-07-29 14:35:46 +02:00: 🔄 Performing auto-commit...
|
||||||
|
2025-07-29 14:35:46 +02:00: ✅ Auto-commit successful
|
||||||
|
2025-07-29 14:54:35 +02:00:
|
||||||
|
2025-07-29 14:54:35 +02:00: 🛑 Stopping auto-commit watcher...
|
||||||
|
2025-07-29 14:54:35 +02:00: 💾 Saving final changes...
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚀 Timeshift Auto-Commit Watcher Started
|
||||||
|
2025-07-29 14:54:37 +02:00: ==========================================
|
||||||
|
2025-07-29 14:54:37 +02:00: 📅 Start time: 2025-07-29T12:54:37.822Z
|
||||||
|
2025-07-29 14:54:37 +02:00: 📁 Watching directories: components, app, lib, styles
|
||||||
|
2025-07-29 14:54:37 +02:00: 📄 File extensions: .tsx, .ts, .js, .jsx, .css, .scss, .json
|
||||||
|
2025-07-29 14:54:37 +02:00: ⏱️ Commit delay: 30s
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚦 Max commits per hour: 10
|
||||||
|
2025-07-29 14:54:37 +02:00: 🔧 Process ID: 652376
|
||||||
|
2025-07-29 14:54:37 +02:00: ==========================================
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/components
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/app
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/lib
|
||||||
|
2025-07-29 14:54:37 +02:00: ⚠️ Directory not found: /home/klas/timeshift/styles
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚀 Auto-commit system ready! Press Ctrl+C to stop.
|
||||||
|
2025-07-29 14:54:37 +02:00: 📋 Commands available:
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh commit [message]
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh restore-point [description]
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh list
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh cleanup
|
||||||
|
2025-07-29 14:54:37 +02:00: (node:652376) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
|
||||||
|
2025-07-29 14:54:37 +02:00: (Use `node --trace-deprecation ...` to show where the warning was created)
|
||||||
|
2025-07-29 14:54:42 +02:00: 🔖 Creating restore point...
|
||||||
|
|||||||
@@ -28,3 +28,27 @@
|
|||||||
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
||||||
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
2025-07-29 14:35:16 +02:00: 📝 File changed: components/timeshift-spreadsheet.tsx (change)
|
||||||
2025-07-29 14:35:46 +02:00: 🔄 Performing auto-commit...
|
2025-07-29 14:35:46 +02:00: 🔄 Performing auto-commit...
|
||||||
|
2025-07-29 14:35:46 +02:00: ✅ Auto-commit successful
|
||||||
|
2025-07-29 14:54:35 +02:00:
|
||||||
|
2025-07-29 14:54:35 +02:00: 🛑 Stopping auto-commit watcher...
|
||||||
|
2025-07-29 14:54:35 +02:00: 💾 Saving final changes...
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚀 Timeshift Auto-Commit Watcher Started
|
||||||
|
2025-07-29 14:54:37 +02:00: ==========================================
|
||||||
|
2025-07-29 14:54:37 +02:00: 📅 Start time: 2025-07-29T12:54:37.822Z
|
||||||
|
2025-07-29 14:54:37 +02:00: 📁 Watching directories: components, app, lib, styles
|
||||||
|
2025-07-29 14:54:37 +02:00: 📄 File extensions: .tsx, .ts, .js, .jsx, .css, .scss, .json
|
||||||
|
2025-07-29 14:54:37 +02:00: ⏱️ Commit delay: 30s
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚦 Max commits per hour: 10
|
||||||
|
2025-07-29 14:54:37 +02:00: 🔧 Process ID: 652376
|
||||||
|
2025-07-29 14:54:37 +02:00: ==========================================
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/components
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/app
|
||||||
|
2025-07-29 14:54:37 +02:00: 👀 Watching: /home/klas/timeshift/lib
|
||||||
|
2025-07-29 14:54:37 +02:00: ⚠️ Directory not found: /home/klas/timeshift/styles
|
||||||
|
2025-07-29 14:54:37 +02:00: 🚀 Auto-commit system ready! Press Ctrl+C to stop.
|
||||||
|
2025-07-29 14:54:37 +02:00: 📋 Commands available:
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh commit [message]
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh restore-point [description]
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh list
|
||||||
|
2025-07-29 14:54:37 +02:00: ./auto-commit.sh cleanup
|
||||||
|
2025-07-29 14:54:42 +02:00: 🔖 Creating restore point...
|
||||||
|
|||||||
Reference in New Issue
Block a user