Add port renaming on existing devices
Device view now has a 'Rename Ports' section with inline inputs for
every port. Port names are no longer immutable after device creation.
Added PortUpdateName to DB layer and POST /devices/{id}/ports/rename.
master
parent
7bcfa73c19
commit
a845b242a2
|
|
@ -49,6 +49,11 @@ func (s *Store) PortGetPaired(deviceID int64, name string, side string) (*models
|
||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Store) PortUpdateName(id int64, name string) error {
|
||||||
|
_, err := s.DB.Exec(`UPDATE device_ports SET name = ? WHERE id = ?`, name, id)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Store) portCreateFromModelTx(tx *sql.Tx, deviceID int64, model *models.DeviceModel) error {
|
func (s *Store) portCreateFromModelTx(tx *sql.Tx, deviceID int64, model *models.DeviceModel) error {
|
||||||
for _, mp := range model.Ports {
|
for _, mp := range model.Ports {
|
||||||
if model.IsPatchPanel || model.IsWallSocket {
|
if model.IsPatchPanel || model.IsWallSocket {
|
||||||
|
|
|
||||||
|
|
@ -148,6 +148,34 @@ func (h *Handlers) DeviceDelete(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Handlers) DeviceRenamePorts(w http.ResponseWriter, r *http.Request) {
|
||||||
|
idStr := r.PathValue("id")
|
||||||
|
id, _ := strconv.ParseInt(idStr, 10, 64)
|
||||||
|
|
||||||
|
device, err := h.Store.DeviceGetByID(id)
|
||||||
|
if err != nil || device == nil {
|
||||||
|
http.NotFound(w, r)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
r.ParseForm()
|
||||||
|
portIDs := r.Form["port_id"]
|
||||||
|
portNames := r.Form["port_name"]
|
||||||
|
|
||||||
|
for i := range portIDs {
|
||||||
|
if i >= len(portNames) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
pid, err := strconv.ParseInt(portIDs[i], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
h.Store.PortUpdateName(pid, portNames[i])
|
||||||
|
}
|
||||||
|
|
||||||
|
h.redirect(w, r, "/devices/"+idStr)
|
||||||
|
}
|
||||||
|
|
||||||
func (h *Handlers) renderDeviceError(w http.ResponseWriter, device models.Device, errMsg string) {
|
func (h *Handlers) renderDeviceError(w http.ResponseWriter, device models.Device, errMsg string) {
|
||||||
connTypes, _ := h.Store.ConnectionTypeGetAll()
|
connTypes, _ := h.Store.ConnectionTypeGetAll()
|
||||||
if connTypes == nil {
|
if connTypes == nil {
|
||||||
|
|
|
||||||
1
main.go
1
main.go
|
|
@ -35,6 +35,7 @@ func main() {
|
||||||
mux.HandleFunc("POST /racks/{id}/devices/add/unracked", h.RackAddUnrackedDevice)
|
mux.HandleFunc("POST /racks/{id}/devices/add/unracked", h.RackAddUnrackedDevice)
|
||||||
mux.HandleFunc("POST /racks/{id}/devices/{devId}/remove", h.RackRemoveDevice)
|
mux.HandleFunc("POST /racks/{id}/devices/{devId}/remove", h.RackRemoveDevice)
|
||||||
mux.HandleFunc("POST /devices/{id}/edit", h.DeviceEdit)
|
mux.HandleFunc("POST /devices/{id}/edit", h.DeviceEdit)
|
||||||
|
mux.HandleFunc("POST /devices/{id}/ports/rename", h.DeviceRenamePorts)
|
||||||
mux.HandleFunc("POST /devices/{id}/delete", h.DeviceDelete)
|
mux.HandleFunc("POST /devices/{id}/delete", h.DeviceDelete)
|
||||||
mux.HandleFunc("POST /devices/add", h.DeviceCreate)
|
mux.HandleFunc("POST /devices/add", h.DeviceCreate)
|
||||||
mux.HandleFunc("GET /devices/{id}", h.DeviceView)
|
mux.HandleFunc("GET /devices/{id}", h.DeviceView)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue