tothda (owner)

Revisions

gist: 8944 Download_button fork
public
Public Clone URL: git://gist.github.com/8944.git
sztaki-ubiquity.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
// TODO:
// * sztaki off még nem működik
// * a megjelenő ablak legyen draggable és resizeable (jQuery UI)
// * a kijelölt szavak szótövesítése, és a szótő lekérdezése a szótárból (pl. többes számú főneveknél, vagy ing-es igéknél jól jöhet)
 
noun_type_sztaki_states = new CmdUtils.NounType("SztakiStates", ["on", "off"]);
 
var dictionaryWindowStyle = "<style> \
#sztaki_results { \
color: black; \
position: fixed; \
top: 40px; \
left: 40px; \
width: 200px; \
height: 300px; \
background-color: yellow; \
font-size: 11px; \
font-family: \"Lucida Grande\"; \
padding: 10px; \
-moz-border-radius: 10px; \
opacity: .80; \
z-index: 100; \
text-align: left; \
} \
#sztaki_results h3 { \
font-size: 12px; \
font-weight: bold; \
border-bottom: 1px solid black; \
margin: 0 \
} \
#sztaki_results ul { \
padding-left: 0px; \
margin: 5px 0; \
} \
#sztaki_results ul li { \
list-style-type: none; \
padding: 1px; \
} \
</style>";
 
var dictionaryWindowTemplate = "<div id=\"sztaki_results\"> \
<h3>${englishWord}</h3> \
<ul> \
{for w in words } \
<li>${w}</li> \
{/for} \
</ul> \
</div>";
 
 
 
CmdUtils.CreateCommand({
    name: "sztaki",
    homepage: "http://hiperkocka.hu/",
    author: { name: "Tóth Dávid", email: "tothda@gmail.com" },
    license: "GPL",
    description: "Sztaki szótár kliens",
    help: "A \"sztaki on\" paranccsal bekapcsolva, egy kis ablak jelenik meg a weboldalon. Ezután ha egy angol szóra duplán kattintunk, a program lekérdez a Sztaki szótárból, és az eredményt az ablakba teszi.",
    icon: "http://szotar.sztaki.hu/favicon.ico",
 
    takes: {
        "state": noun_type_sztaki_states
    },
 
    inserWindowStyle: function() {
      var body = context.focusedWindow.document.body;
      jQuery(body).append(dictionaryWindowStyle);
    },
 
    translate: function() {
        var word = CmdUtils.getSelection();
        var dictUrl = 'http://szotar.sztaki.hu/dict_search.php';
        var params = {
            L: "ENG:HUN:EngHunDict",
            M: "3",
            E: "1",
            T: "0",
            C: "0",
            A: "0",
            P: "0",
            O: "HUN",
            in_bookmarklet: "1",
            W: word
        };
        jQuery.get(dictUrl, params,
            function(data) {
                var result
                var tempElement = CmdUtils.getHiddenWindow().document.createElementNS("http://www.w3.org/1999/xhtml", "div");
                tempElement.innerHTML = data;
                var result = jQuery(tempElement).find('#result .normtext a');
                var resultElems = jQuery(tempElement).find('#result .normtext a').get();
                var words = jQuery.map(resultElems, function(e) {return jQuery(e).html();});
                var body = context.focusedWindow.document.body;
                jQuery("#sztaki_results", body).html(CmdUtils.renderTemplate(dictionaryWindowTemplate, {words: words, englishWord:word}));
            }
        );
    },
 
    execute: function(state) {
        var body = context.focusedWindow.document.body;
        var resultsDiv = jQuery(body).append("<div id='sztaki_results'>Szótár lekérdezés eredmények:</div>");
        this.inserWindowStyle();
        if (state.text == "off") {
            body.removeEventListener("dblclick", this.translate, false);
            return;
        }
        jQuery(body).bind("dblclick", this, this.translate);
    }
})