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

41 lines
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: () =>
console.log "Triggering", "layout:#{name}:resize", name
scope.$broadcast "layout:#{name}:resize"
2014-06-30 13:35:01 -04:00
repositionControls()
#maskIframesOnResize: true
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
}