jQuery(document).ready ($) ->
# select image in media library
window.mpp_selectImage = (id, aff_link = false) ->
m = wp.media.editor.get(wpActiveEditor)
m.setState('insert')
m.content.mode('browse')
m.views._views[".media-frame-content"][0].views._views[""][1].collection.props.set({ignore:(+(new Date()))})
s = m.state('insert').get('selection')
s.reset([])
a = wp.media.attachment(id)
a.fetch({
success: (model, response, options) ->
s.add(a)
})
if not wp?.media
return
window.mpp_syncSearch =
sync: true
search: ''
filters: ['mpp_search_filter_photo']
# add stock photo button
window.add_stock_photo = false
$('.add-stock-photo').on('click', ->
window.add_stock_photo = true
$('.insert-media').trigger('click')
)
# controller
wp.media.controller.MPP = wp.media.controller.State.extend(
initialize: ->
@
refresh: ->
@frame.toolbar.get().refresh()
_renderTitle: (view) ->
view.$el.html(this.get('headerTitle'))
_renderMenu: (view) ->
menuItem = view.get('menuItem')
title = @get('title')
priority = @get('priority')
if not menuItem then menuItem = { html: title }
if priority then menuItem.priority = priority;
view.set(@id, menuItem)
)
# view
wp.media.view.MPP = wp.media.View.extend(
template: wp.media.template('mpp-content')
initialize: ->
@module = @options.module
render: ->
@
)
# toolbar
wp.media.view.Toolbar.MPP = wp.media.view.Toolbar.extend(
initialize: ->
wp.media.view.Toolbar.prototype.initialize.apply(@, arguments)
refresh: ->
wp.media.view.Toolbar.prototype.refresh.apply(@, arguments)
state = @controller.state()
for module in MicrostockPhotoPlugin.modules
if state.id == 'mpp-'+module.name
@secondary.$el.html(wp.media.template('mpp-loader'))
window.mpp_loader = @secondary.$el.find('.mpp_loader')
$img_logo = $('').attr('src', module.logo).css('margin-top', '13px')
@primary.$el.html($img_logo)
iframe = @controller.$el.find('.mpp-iframe-' + module.name)
if iframe.length > 0
iframe[0].contentWindow.mpp_checkStatus()
@
)
# extend media frame
MediaFrame = wp.media.view.MediaFrame.Post
wp.media.view.MediaFrame.Post = MediaFrame.extend(
initialize: ->
for module in MicrostockPhotoPlugin.modules
delete wp.media.view.settings.tabs[module.name]
MediaFrame.prototype.initialize.apply(@, arguments)
@on 'deactivate', =>
for module in MicrostockPhotoPlugin.modules
if @state().id is 'mpp-'+module.name
iframe = @$el.find('.mpp-iframe-' + module.name)
if iframe.length > 0
window.mpp_syncSearch = iframe[0].contentWindow.mpp_syncSearch()
@$el.find('.mpp-frame-content').hide()
@on 'activate', =>
window.mpp_currentState = @state().id
@on 'open', =>
id = 'mpp-MicrostockPhotoPlugin_depositphotos'
if @states.where({ id: id}).length > 0 and window.add_stock_photo
window.add_stock_photo = false
@setState(id)
# add modules
for module in MicrostockPhotoPlugin.modules
@states.remove(
@states.where({ id: 'iframe:' + module.name })
)
@states.add([
new wp.media.controller.MPP(
id: 'mpp-' + module.name
menu: 'default'
content: 'mpp-' + module.name
toolbar: 'mpp-' + module.name
title: '
' + module.title + (if module.new then '' + MicrostockPhotoPlugin.text.new + '' else '')
headerTitle: '
' + module.title + (if module.new then '' + MicrostockPhotoPlugin.text.new + '' else '')
priority: 200
type: 'link'
)
])
@on('content:render:mpp-' + module.name, _.bind(@moduleContent, @, module))
@on('toolbar:create:mpp-' + module.name, @createToolbar, @)
moduleContent: (module) ->
@$el.addClass('hide-router')
if not @$el.find('.mpp-frame-content-'+module.name).length
iframe = ''
def_content = @$el.find('.media-frame-content')
content = $('