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 | |||||