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

Last change on this file since 39 was 36, checked in by anonymous, 6 years ago

hide unused menu by css

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