source: branches/testa-single-bookmark/js/bookmarkmenu.js @ 101

Last change on this file since 101 was 41, checked in by anonymous, 6 years ago

add bin

File size: 4.0 KB
Line 
1class BookmarkMenu {
2    constructor( bookmark_displayname_max_length , mgr ) {
3        this.bookmark_displayname_max_length = bookmark_displayname_max_length
4        this.bookmark_mgr = mgr
5    }
6
7    dlg(){
8        $( '#bookmark_displayname' ).prop( 'maxlength' , Globalx.bookmark_displayname_max_length)
9        $('#bookmarkDlg').dialog({
10            autoOpen: false,
11            modal: true,
12            buttons: {
13                "OK": function() {
14                    const part = Globalx.parts[ Globalx.index ]
15                    const path = $( '#bookmark_path' ).val()
16                    const displayname = $( '#bookmark_displayname' ).val()
17                    Globalx.bookmarkmenu.register_bookmark(path, displayname )
18                    $(this).dialog("close")},
19                "Cancel": function() {
20                    const part = Globalx.parts[ Globalx.index ]
21                    const bookmark_cb = $( Globalx[part].bookmark_op_sel )
22                    bookmark_cb.prop('checked', false)
23                    $(this).dialog("close")
24                }
25            }
26        })
27    }
28
29    add_bookmark() {
30        let part = Globalx.parts[ Globalx.index ]
31        $( '#bookmark_displayname' ).val( this.bookmark_mgr.get_restricted_display_name( Globalx[part].key ) )
32        $( '#bookmark_path' ).val( Globalx[part].key )
33        $( '#bookmarkDlg' ).dialog("open")
34    }
35
36    remove_bookmark() {
37        let part = Globalx.parts[ Globalx.index ]
38        this.bookmark_mgr.remove( part, Globalx[part].key )
39        this.rebuild_bookmark_menu(part)
40    }
41
42    bookmark_op() {
43        let part = Globalx.parts[ Globalx.index ]
44        let bookmark_op_sel = Globalx[part].bookmark_op_sel
45        if( $( bookmark_op_sel ).is(':checked') == true ){
46            this.add_bookmark()
47        }
48        else{
49            this.remove_bookmark()
50        }
51    }
52
53    set_click_handler(part) {
54        let bookmark_op_sel = Globalx[part].bookmark_op_sel
55
56        $( bookmark_op_sel ).on( 'click' , () => {
57            console.log("bookmark_op_sel clicked")
58            this.bookmark_op() } )
59    }
60
61    register_bookmark( path, displayname ) {
62        let part = Globalx.parts[ Globalx.index ]
63        console.log("BookmarkMenu register_bookmark part="+part+" path="+path)
64        this.bookmark_mgr.add( part, path , displayname )
65        this.rebuild_bookmark_menu(part)
66    }
67
68    rebuild_bookmark_menu(part) {
69        let num = Globalx.num
70        let bookmark_sel = Globalx[part].bookmark_sel
71        $( bookmark_sel ).empty()
72
73        const array = this.bookmark_mgr.get_paths(part)
74
75        let content = null
76        let item = null
77        array.map( ( path ) => {
78            const display_name = this.bookmark_mgr.display_name( part, path )
79            content = `<li><a href="#" >${display_name}</a></li>`;
80            console.log("BookmarkMenu rebuld_bookmark_menu content=" + content)
81            $( bookmark_sel ).append( content );
82            console.log( "bookmark_sel="+bookmark_sel)
83            item = $( bookmark_sel ).children().last()
84            console.log( "item=" + item )
85            item.on('click' , () => {
86                console.log("BookmarkMenu rebuld_bookmark_menu bookmark_action part="+part + " path" + path )
87                this.bookmark_action( part , path )
88            } )
89            console.log("BookmarkMenu rebuld_bookmark_menu path=" + path )
90        })
91    }
92
93    set_globalx_item_name( part, item_name ) {
94        Globalx[part].item_name = item_name
95        let dl = $( Globalx[part].download_sel )
96        dl.attr('download' , Globalx[part].item_name)
97        dl.removeAttr('href')
98    }
99
100    bookmark_action ( part, key ) {
101        if( key === null || key === "" ){
102            alert("illeagal key=" + key )
103            return
104        }
105        if(key === Globalx[part].key){
106            return
107        }
108        let num = Globalx.num
109        let jsondata = Globalx.storagex.get_filelist( Globalx.num , part)
110        Globalx[part].key = key
111        Globalx[part].key_indicate_file = false;
112
113        this.set_globalx_item_name( part, key )
114
115        $( Globalx[part].key_sel ).val( key )
116        if( jsondata[key].length == 0 ){
117            Globalx[part].key_indicate_file = true;
118            Globalx.remotex.get_content( num, part, Globalx[part].key , (content) => {
119                Globalx[part].editor.getSession().setValue( content )
120                $( Globalx[part].textarea_sel ).val( content )
121            });
122        }
123        else{
124            Globalx[part].key_indicate_file = false
125            Globalx[part].editor.getSession().setValue( "" );
126            $( Globalx[part].textarea_sel ).val( "" );
127        }
128        const bookmark_cb = $( Globalx[part].bookmark_op_sel )
129        bookmark_cb.prop('checked', true)
130
131        $( Globalx[part].menu_sel ).empty()
132
133        this.make_menu_item_list(jsondata, Globalx[part].key)
134    }
135}
Note: See TracBrowser for help on using the repository browser.