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

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

add bin

File size: 4.0 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(){
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]29    add_bookmark() {
[36]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 )
[29]33        $( '#bookmarkDlg' ).dialog("open")
34    }
35
36    remove_bookmark() {
[36]37        let part = Globalx.parts[ Globalx.index ]
38        this.bookmark_mgr.remove( part, Globalx[part].key )
39        this.rebuild_bookmark_menu(part)
[29]40    }
41
42    bookmark_op() {
[36]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 ){
[29]46            this.add_bookmark()
47        }
48        else{
49            this.remove_bookmark()
50        }
51    }
52
[36]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() } )
[29]59    }
60
[36]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)
[29]66    }
67
[36]68    rebuild_bookmark_menu(part) {
69        let num = Globalx.num
70        let bookmark_sel = Globalx[part].bookmark_sel
71        $( bookmark_sel ).empty()
[29]72
[36]73        const array = this.bookmark_mgr.get_paths(part)
[29]74
[36]75        let content = null
76        let item = null
[29]77        array.map( ( path ) => {
[36]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)
[41]83            item = $( bookmark_sel ).children().last()
[36]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 )
[29]90        })
91    }
92
[36]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
[41]100    bookmark_action ( part, key ) {
[29]101        if( key === null || key === "" ){
102            alert("illeagal key=" + key )
103            return
104        }
105        if(key === Globalx[part].key){
106            return
107        }
[36]108        let num = Globalx.num
109        let jsondata = Globalx.storagex.get_filelist( Globalx.num , part)
[29]110        Globalx[part].key = key
111        Globalx[part].key_indicate_file = false;
112
113        this.set_globalx_item_name( part, key )
114
[36]115        $( Globalx[part].key_sel ).val( key )
116        if( jsondata[key].length == 0 ){
[29]117            Globalx[part].key_indicate_file = true;
[36]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 )
[29]121            });
122        }
123        else{
124            Globalx[part].key_indicate_file = false
[36]125            Globalx[part].editor.getSession().setValue( "" );
126            $( Globalx[part].textarea_sel ).val( "" );
[29]127        }
[36]128        const bookmark_cb = $( Globalx[part].bookmark_op_sel )
[29]129        bookmark_cb.prop('checked', true)
130
[36]131        $( Globalx[part].menu_sel ).empty()
[29]132
[36]133        this.make_menu_item_list(jsondata, Globalx[part].key)
[29]134    }
135}
Note: See TracBrowser for help on using the repository browser.