Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/application/files/behavior-document-engine.js
Show First 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | var onhighlight = JX.bind(null, function(data, e) { | ||||
menu.close(); | menu.close(); | ||||
}, data); | }, data); | ||||
highlight_item.setHandler(onhighlight); | highlight_item.setHandler(onhighlight); | ||||
list.addItem(highlight_item); | list.addItem(highlight_item); | ||||
var blame_item; | |||||
if (data.blame.uri) { | |||||
blame_item = new JX.PHUIXActionView() | |||||
.setIcon(data.blame.icon); | |||||
var onblame = JX.bind(null, function(data, e) { | |||||
e.prevent(); | |||||
if (blame_item.getDisabled()) { | |||||
return; | |||||
} | |||||
data.blame.enabled = !data.blame.enabled; | |||||
onview(data); | |||||
menu.close(); | |||||
}, data); | |||||
blame_item.setHandler(onblame); | |||||
list.addItem(blame_item); | |||||
} | |||||
menu.setContent(list.getNode()); | menu.setContent(list.getNode()); | ||||
menu.listen('open', function() { | menu.listen('open', function() { | ||||
for (var ii = 0; ii < engines.length; ii++) { | for (var ii = 0; ii < engines.length; ii++) { | ||||
var engine = engines[ii]; | var engine = engines[ii]; | ||||
// Highlight the current rendering engine. | // Highlight the current rendering engine. | ||||
var is_selected = (engine.spec.viewKey == data.viewKey); | var is_selected = (engine.spec.viewKey == data.viewKey); | ||||
engine.view.setSelected(is_selected); | engine.view.setSelected(is_selected); | ||||
if (is_selected) { | if (is_selected) { | ||||
encode_item.setDisabled(!engine.spec.canEncode); | encode_item.setDisabled(!engine.spec.canEncode); | ||||
highlight_item.setDisabled(!engine.spec.canHighlight); | highlight_item.setDisabled(!engine.spec.canHighlight); | ||||
if (blame_item) { | |||||
blame_item.setDisabled(!engine.spec.canBlame); | |||||
} | |||||
} | } | ||||
} | } | ||||
if (blame_item) { | |||||
var blame_label; | |||||
if (data.blame.enabled) { | |||||
blame_label = data.blame.hide; | |||||
} else { | |||||
blame_label = data.blame.show; | |||||
} | |||||
blame_item.setName(blame_label); | |||||
} | |||||
}); | }); | ||||
data.menu = menu; | data.menu = menu; | ||||
menu.open(); | menu.open(); | ||||
} | } | ||||
function add_params(uri, data) { | function add_params(uri, data) { | ||||
uri = JX.$U(uri); | uri = JX.$U(uri); | ||||
if (data.highlight.value) { | if (data.highlight.value) { | ||||
uri.setQueryParam('highlight', data.highlight.value); | uri.setQueryParam('highlight', data.highlight.value); | ||||
} | } | ||||
if (data.encode.value) { | if (data.encode.value) { | ||||
uri.setQueryParam('encode', data.encode.value); | uri.setQueryParam('encode', data.encode.value); | ||||
} | } | ||||
if (data.blame.enabled) { | |||||
uri.setQueryParam('blame', null); | |||||
} else { | |||||
uri.setQueryParam('blame', 'off'); | |||||
} | |||||
return uri.toString(); | return uri.toString(); | ||||
} | } | ||||
function onview(data, spec, immediate) { | function onview(data, spec, immediate) { | ||||
if (!spec) { | if (!spec) { | ||||
for (var ii = 0; ii < data.views.length; ii++) { | for (var ii = 0; ii < data.views.length; ii++) { | ||||
if (data.views[ii].viewKey == data.viewKey) { | if (data.views[ii].viewKey == data.viewKey) { | ||||
spec = data.views[ii]; | spec = data.views[ii]; | ||||
▲ Show 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | function onrender(data, sequence, spec, r) { | ||||
var viewport = JX.$(data.viewportID); | var viewport = JX.$(data.viewportID); | ||||
JX.DOM.alterClass(viewport, 'document-engine-in-flight', false); | JX.DOM.alterClass(viewport, 'document-engine-in-flight', false); | ||||
data.loadingView = false; | data.loadingView = false; | ||||
JX.DOM.setContent(viewport, JX.$H(r.markup)); | JX.DOM.setContent(viewport, JX.$H(r.markup)); | ||||
// If this engine supports rendering blame, populate or draw it. | // If this engine supports rendering blame, populate or draw it. | ||||
if (spec.canBlame) { | if (spec.canBlame && data.blame.enabled) { | ||||
blame(data); | blame(data); | ||||
} | } | ||||
} | } | ||||
function blame(data) { | function blame(data) { | ||||
// If the rendering engine can't handle blame, bail. | // If the rendering engine can't handle blame, bail. | ||||
if (!data.blame.uri) { | if (!data.blame.uri) { | ||||
return; | return; | ||||
▲ Show 20 Lines • Show All 214 Lines • Show Last 20 Lines |