mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 02:12:58 +08:00
feat: support sftp status (#307)
This commit is contained in:
@@ -156,6 +156,18 @@ class FileTransportPanel(
|
|||||||
deleteAll.isEnabled = transportManager.getTransports().isNotEmpty()
|
deleteAll.isEnabled = transportManager.getTransports().isNotEmpty()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
popupMenu.addSeparator()
|
||||||
|
|
||||||
|
popupMenu.add(I18n.getString("termora.transport.jobs.table.status")).addActionListener {
|
||||||
|
val last = transports.last()
|
||||||
|
OptionPane.showMessageDialog(
|
||||||
|
SwingUtilities.getWindowAncestor(this),
|
||||||
|
if (last.state == TransportState.Failed && last.stateText.isNotBlank()) last.stateText
|
||||||
|
else tableModel.formatStatus(last.state),
|
||||||
|
messageType = if (last.state == TransportState.Failed) JOptionPane.ERROR_MESSAGE else JOptionPane.INFORMATION_MESSAGE
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
popupMenu.show(table, event.x, event.y)
|
popupMenu.show(table, event.x, event.y)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class FileTransportTableModel(transportManager: TransportManager) : DefaultTable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun formatStatus(state: TransportState): String {
|
fun formatStatus(state: TransportState): String {
|
||||||
return when (state) {
|
return when (state) {
|
||||||
TransportState.Transporting -> I18n.getString("termora.transport.sftp.status.transporting")
|
TransportState.Transporting -> I18n.getString("termora.transport.sftp.status.transporting")
|
||||||
TransportState.Waiting -> I18n.getString("termora.transport.sftp.status.waiting")
|
TransportState.Waiting -> I18n.getString("termora.transport.sftp.status.waiting")
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package app.termora.transport
|
|||||||
import app.termora.Disposable
|
import app.termora.Disposable
|
||||||
import org.apache.commons.io.IOUtils
|
import org.apache.commons.io.IOUtils
|
||||||
import org.apache.commons.lang3.ObjectUtils
|
import org.apache.commons.lang3.ObjectUtils
|
||||||
|
import org.apache.commons.lang3.StringUtils
|
||||||
|
import org.apache.commons.lang3.exception.ExceptionUtils
|
||||||
import org.apache.commons.net.io.CopyStreamEvent
|
import org.apache.commons.net.io.CopyStreamEvent
|
||||||
import org.apache.commons.net.io.CopyStreamListener
|
import org.apache.commons.net.io.CopyStreamListener
|
||||||
import org.apache.commons.net.io.Util
|
import org.apache.commons.net.io.Util
|
||||||
@@ -47,6 +49,7 @@ abstract class Transport(
|
|||||||
field = value
|
field = value
|
||||||
listeners.forEach { it.onTransportChanged(this) }
|
listeners.forEach { it.onTransportChanged(this) }
|
||||||
}
|
}
|
||||||
|
var stateText: String = StringUtils.EMPTY
|
||||||
|
|
||||||
// 0 - 1
|
// 0 - 1
|
||||||
var progress = 0.0
|
var progress = 0.0
|
||||||
@@ -186,6 +189,7 @@ class FileTransport(
|
|||||||
log.error(e.message, e)
|
log.error(e.message, e)
|
||||||
}
|
}
|
||||||
state = TransportState.Failed
|
state = TransportState.Failed
|
||||||
|
stateText = ExceptionUtils.getRootCauseMessage(e)
|
||||||
} finally {
|
} finally {
|
||||||
counter.clear()
|
counter.clear()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user