forked from mthiede/concrete
/
preferences_dialog.js
74 lines (65 loc) · 2.42 KB
/
preferences_dialog.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
Concrete.UI.PreferencesDialog = Class.create(Concrete.UI.AbstractDialog, {
initialize: function($super, options) {
options = options || {};
var dialogElement = this._createDomElement();
$super(dialogElement, options);
this.syntaxInput = dialogElement.down(".syntax_input");
},
_createDomElement: function() {
if ($('ct_preferences_dialog')) return $('ct_preferences_dialog');
Element.insert($$('body').first(), { bottom:
"<div id='ct_preferences_dialog' class='popup_dialog' style='display: none; position: fixed; z-index: 1000'>" +
"<div class='shadow'></div>" +
"<div class='dialog_box'>" +
"<div class='title_bar'>Preferences" +
"<a class='close_button'></a>" +
"</div>" +
"<div class='container'>" +
"<p class='label'>Concrete Syntax</p>" +
"<select class='dropdown_input syntax_input'>" +
"</select>" +
"<div style='text-align: center; margin: 10px'>" +
"<input class='button_input proceed_button' type='button' value='OK' />" +
"<input class='button_input cancel_button' type='button' value='Cancel' />" +
"</div>" +
"</div>" +
"</div>" +
"</div>" });
return $('ct_preferences_dialog');
},
_proceed: function() {
new Ajax.Request("/setConcreteSyntax", {
method: 'get',
parameters: {"ident": this.syntaxInput.value},
onSuccess: function(transport) {
},
onFailure: function() {
}
});
},
_buttonPressed: function(element) {
if (element == this.dialogElement.down(".cancel_button")) {
this.close();
}
},
open: function($super, options) {
$super();
new Ajax.Request("/concreteSyntaxes", {
method: 'get',
onSuccess: function(transport) {
if (transport.responseText.isJSON()) {
var synDesc = transport.responseText.evalJSON();
Element.replace(this.syntaxInput,
"<select class='dropdown_input syntax_input'>" +
synDesc.syntaxes.collect(function(s) {
var selected = (s.ident == synDesc.selected) ? "selected" : "";
return "<option "+selected+" value=\""+s.ident+"\">"+s.name+"</option>";
}).join("") +
"</select>"
);
this.syntaxInput = this.dialogElement.down(".syntax_input");
}
}.bind(this),
});
}
});