overleaf/services/web/public/coffee/app/ide/directives/layout.coffee

46 lines
1.1 KiB
CoffeeScript
Raw Normal View History

2014-06-21 17:20:37 -04:00
define [
"base"
], (App) ->
App.directive "layout", () ->
return {
link: (scope, element, attrs) ->
name = attrs.layout
options =
spacing_open: 24
spacing_closed: 24
onresize: () =>
onResize()
maskIframesOnResize: scope.$eval(
attrs.maskIframesOnResize or "false"
)
onResize = () ->
state = element.layout().readState()
scope.$broadcast "layout:#{name}:resize", state
repositionControls()
2014-06-21 17:20:37 -04:00
# Restore previously recorded state
if (state = $.localStorage("layout.#{name}"))?
2014-06-21 17:20:37 -04:00
options.west = state.west
options.east = state.east
element.layout options
element.layout().resizeAll()
if attrs.resizeOn?
scope.$on attrs.resizeOn, () -> element.layout().resizeAll()
2014-06-21 17:20:37 -04:00
# Save state when exiting
$(window).unload () ->
$.localStorage("layout.#{name}", element.layout().readState())
2014-06-30 13:35:01 -04:00
repositionControls = () ->
state = element.layout().readState()
if state.east?
element.find(".ui-layout-resizer-controls").css({
position: "absolute"
right: state.east.size
"z-index": 10
})
2014-06-21 17:20:37 -04:00
}