-
Notifications
You must be signed in to change notification settings - Fork 11
/
nodes.js
95 lines (73 loc) · 3.1 KB
/
nodes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
jQuery(function()
{
var body = jQuery('body.controller-releaf-content-nodes');
body.on('contentloaded', function(e)
{
var block = jQuery(e.target);
// trigger on body as its outside loaded content parts
block.find('.dialog form[data-remote-validation="true"]').on( 'validation:ok', function()
{
block.trigger('ajaxboxclose');
});
// item collapse / expand
block.find('.collection li .collapser').click(function()
{
var item = jQuery(this).closest('.collection li');
var should_expand = item.is('.collapsed');
var event_name = should_expand ? 'nodeitemexpand' : 'nodeitemcollapse';
item.trigger(event_name);
var setting_key = 'content.tree.expanded.' + item.data('id');
body.trigger( 'settingssave', [ setting_key, should_expand ] );
});
block.find('.collection li').bind('nodeitemcollapse', function( e )
{
e.stopPropagation();
var item = jQuery(e.target);
item.addClass('collapsed');
item.children('.collapser-cell').find('.collapser i').removeClass('fa-chevron-down').addClass('fa-chevron-right');
});
block.find('.collection li').bind('nodeitemexpand', function( e )
{
e.stopPropagation();
var item = jQuery(e.target);
item.removeClass('collapsed');
item.children('.collapser-cell').find('.collapser i').removeClass('fa-chevron-right').addClass('fa-chevron-down');
});
// slug generation
var name_input = block.find('.node-fields .field[data-name="name"] input');
var slug_field = block.find('.node-fields .field[data-name="slug"]');
if (name_input.length && slug_field.length)
{
var slug_input = slug_field.find('input');
var slug_button = slug_field.find('.generate');
var slug_link = slug_field.find('a');
slug_input.on('sluggenerate', function()
{
var url = slug_input.attr('data-generator-url');
slug_button.trigger('loadingstart');
jQuery.get( url, { name: name_input.val() }, function( slug )
{
slug_input.val( slug );
slug_link.find('span').text( encodeURIComponent( slug ) );
slug_button.trigger('loadingend');
});
});
slug_button.click(function()
{
slug_input.trigger('sluggenerate');
});
// bind onchange slug generation only if starting out with an empty name
name_input.on('change', function()
{
if(slug_input.val().length === 0)
{
slug_input.trigger('sluggenerate');
}
});
}
});
body.on('click', '.dialog .node-cell label', function() {
jQuery('.dialog .node-cell label').removeClass('selected');
jQuery(this).addClass('selected');
});
});