diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
index 82c4634..a534c5f 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo.properties
@@ -72,6 +72,7 @@
 
 fl_panel_instances=Instances Panel
 fl_panel_summary=Summary Panel
+fl_panel_details=Details Panel
 
 fl_port_highlighting=Port Highlighting
 
diff --git a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
index 524b248..8354573 100644
--- a/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
+++ b/web/gui/src/main/resources/org/onosproject/ui/lion/core/view/Topo_it.properties
@@ -72,6 +72,7 @@
 
 fl_panel_instances=Instances Panel (it)
 fl_panel_summary=Summary Panel (it)
+fl_panel_details=Details Panel (it)
 
 fl_port_highlighting=Port Highlighting (it)
 
diff --git a/web/gui/src/main/webapp/app/view/topo/topoPanel.js b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
index 3452614..3301e5b 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoPanel.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
@@ -246,9 +246,6 @@
 
         detail.setup();
 
-        // TODO: remove
-        $log.debug('>> Display Single Item Details', data);
-
         var svg = detail.appendHeader('div')
                 .classed('icon clickable', true)
                 .append('svg'),
@@ -301,88 +298,6 @@
         bns.button(btnDiv, idDet + '-' + o.id, o.gid, o.cb, o.tt);
     }
 
-    var friendlyIndex = {
-        device: 1,
-        host: 0,
-    };
-
-    function friendly(d) {
-        var i = friendlyIndex[d.class] || 0;
-        return (d.labels && d.labels[i]) || '';
-    }
-
-    function linkSummary(d) {
-        var o = d && d.online ? 'online' : 'offline';
-        return d ? d.type + ' / ' + o : '-';
-    }
-
-    // provided to change presentation of internal type name
-    var linkTypePres = {
-        hostLink: 'edge link',
-    };
-
-    function linkType(d) {
-        return linkTypePres[d.type()] || d.type();
-    }
-
-    function linkExpected(d) {
-        return d.expected();
-    }
-
-    // TODO: implement server-side processing of link details
-    var coreOrder = [
-            'Type', 'Expected', '-',
-            'A_type', 'A_id', 'A_label', 'A_port', '-',
-            'B_type', 'B_id', 'B_label', 'B_port',
-        ],
-        edgeOrder = [
-            'Type', '-',
-            'A_type', 'A_id', 'A_label', '-',
-            'B_type', 'B_id', 'B_label', 'B_port',
-        ];
-
-    // FIXME: DEPRECATED (no longer called)
-    function displayLink(data, modifyCb) {
-        detail.setup();
-
-        var svg = detail.appendHeader('div')
-                .classed('icon', true)
-                .append('svg'),
-            title = detail.appendHeader('h2'),
-            table = detail.appendBody('table'),
-            tbody = table.append('tbody'),
-            edgeLink = data.type() === 'hostLink',
-            order = edgeLink ? edgeOrder : coreOrder;
-
-        gs.addGlyph(svg, 'ports', 26);
-        title.text('Link');
-
-        var linkData = {
-            propOrder: order.slice(0), // makes a copy of the array
-            props: {
-                Type: linkType(data),
-                Expected: linkExpected(data),
-
-                A_type: data.source.class,
-                A_id: data.source.id,
-                A_label: friendly(data.source),
-                A_port: data.srcPort,
-
-                B_type: data.target.class,
-                B_id: data.target.id,
-                B_label: friendly(data.target),
-                B_port: data.tgtPort,
-            },
-        };
-        listProps(tbody, modifyCb(linkData, data.extra));
-
-        if (!edgeLink) {
-            addSep(tbody);
-            addProp(tbody, 'A &rarr; B', linkSummary(data.fromSource));
-            addProp(tbody, 'B &rarr; A', linkSummary(data.fromTarget));
-        }
-    }
-
     function displayNothing() {
         haveDetails = false;
         hideDetailPanel();
@@ -494,7 +409,7 @@
             verb;
 
         useDetails = kev ? !useDetails : !!x;
-        verb = useDetails ? 'Enable' : 'Disable'; // TODO: Lion
+        verb = topoLion(useDetails ? 'enable' : 'disable');
 
         if (useDetails) {
             if (haveDetails) {
@@ -503,7 +418,7 @@
         } else {
             hideDetailPanel();
         }
-        flash.flash(verb + ' details panel'); // TODO: Lion
+        flash.flash(verb + ' ' + topoLion('fl_panel_details'));
         return useDetails;
     }
 
@@ -562,7 +477,6 @@
                 toggleUseDetailsFlag: toggleUseDetailsFlag,
                 displaySingle: displaySingle,
                 displayMulti: displayMulti,
-                displayLink: displayLink,
                 displayNothing: displayNothing,
                 displaySomething: displaySomething,
                 addAction: addAction,
diff --git a/web/gui/src/main/webapp/app/view/topo/topoSelect.js b/web/gui/src/main/webapp/app/view/topo/topoSelect.js
index e9829e0..7b4decc 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoSelect.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoSelect.js
@@ -206,7 +206,6 @@
             }
         }
 
-        $log.debug('EVENT> requestDetails', payload);
         wss.sendEvent('requestDetails', payload);
     }
 
diff --git a/web/gui/src/main/webapp/tests/app/view/topo/topoPanel-spec.js b/web/gui/src/main/webapp/tests/app/view/topo/topoPanel-spec.js
index e48c27c..3ba8c86 100644
--- a/web/gui/src/main/webapp/tests/app/view/topo/topoPanel-spec.js
+++ b/web/gui/src/main/webapp/tests/app/view/topo/topoPanel-spec.js
@@ -70,7 +70,6 @@
             'toggleUseDetailsFlag',
             'displaySingle',
             'displayMulti',
-            'displayLink',
             'displayNothing',
             'displaySomething',
             'addAction',
