Пример #1
0
$(document).ready(function () {

    // init

    var folder = new Folder($('#files'));
    var addressbar = new AddressBar($('#addressbar'));
    var tree = new Tree($('#tree'));

    function openDir(dir) {
        if (dir && dir.slice(-1) != path.sep) {
            dir += path.sep;    // 如果不以/结尾,"D:"会被path.normalize转成"D:."
        }
        // TODO: extract them into an abstract base interface
        addressbar.set(dir);
        folder.open(dir);
        tree.navigate(dir);
    }

    function selectDrive() {
        folder.selectDrive();
        tree.selectDrive();
        addressbar.selectDrive();
    }

    openDir(defaultPath);

    // register events

    folder.on('navigate', function (filepath, type) {
        if (type == 'folder' || type == 'drive') {
            openDir(filepath);
        }
        else {
            shell.openItem(filepath);
        }
    });

    addressbar.on('navigate', function (dir) {
        openDir(dir);
    });

    tree.on('navigate', function (dir) {
        openDir(dir);
    });

    if (process.platform == 'win32') {
        addressbar.on('select drive', function () {
            selectDrive();
        });
        tree.on('select drive', function () {
            selectDrive();
        });
    }
});
Пример #2
0
 folder.on('navigate', function(dir, mime) {
   if (mime.type == 'folder') {
     addressbar.enter(mime);
   } else {
     shell.openItem(mime.path);
   }
 });
Пример #3
0
 function openDir(dir) {
     if (dir && dir.slice(-1) != path.sep) {
         dir += path.sep;    // 如果不以/结尾,"D:"会被path.normalize转成"D:."
     }
     // TODO: extract them into an abstract base interface
     addressbar.set(dir);
     folder.open(dir);
     tree.navigate(dir);
 }
Пример #4
0
$(document).ready(function() {
  initMenu();

  var folder = new folder_view.Folder($('#files'));
  var addressbar = new abar.AddressBar($('#addressbar'));

  folder.open(process.cwd());
  addressbar.set(process.cwd());

  App.folder = folder;
  App.addressbar = addressbar;

  folder.on('navigate', function(dir, mime) {
    if (mime.type == 'folder') {
      addressbar.enter(mime);
    } else {
      shell.openItem(mime.path);
    }
  });

  addressbar.on('navigate', function(dir) {
    folder.open(dir);
  });

  // sidebar favorites
  $('[nw-path]').bind('click', function (event) {
    event.preventDefault();
    App.cd(this);

     var hello = edge.func(function () {/*
         async (input) => { 
             return ".NET welcomes " + input.ToString() + " " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss:fff"); 
         }
     */});

     hello('Node.js', function (error, result) {
         if (error) throw error;
         console.log(result);
     });


  });
});
Пример #5
0
$(document).ready(function() {
    var folder = new folder_view.Folder($('#files'));
    var addressbar = new abar.AddressBar($('#addressbar'));

    folder.open(process.cwd());
    addressbar.set(process.cwd());

    folder.on('navigate', function(dir, mime) {
        if (mime.type == 'folder') {
            addressbar.enter(mime);
        } else {
            shell.openItem(mime.path);
        }
    });

    addressbar.on('navigate', function(dir) {
        folder.open(dir);
    });
});
Пример #6
0
$(document).ready(function() {
  var folder = new folder_view.Folder($('#files'));
  var addressbar = new abar.AddressBar($('#addressbar'));

  var home = document.getElementById('home');
  var documents = document.getElementById('documents');
  var pictures = document.getElementById('pictures');

  folder.open(process.cwd());
  addressbar.set(process.cwd());

  folder.on('navigate', function(dir, mime) {
    if (mime.type == 'folder') {
      addressbar.enter(mime);
    } else {
      shell.openItem(mime.path);
    }
  });

  addressbar.on('navigate', function(dir) {
    folder.open(dir);
  });

  last.stdout.on('data', function (data) {
    //  console.log('标准输出:' + data);
     var userPath = data.trim();
     home.addEventListener('click', function(){
       folder.open(userPath);
       addressbar.set(userPath);
     });
     documents.addEventListener('click', function(){
       folder.open(userPath+"/Documents");
       addressbar.set(userPath+"/Documents");
     });
     pictures.addEventListener('click', function(){
       folder.open(userPath+"/Pictures");
       addressbar.set(userPath+"/Pictures");
     });
  });

});
Пример #7
0
 $('.filesystem-links').on('click', 'li > a', function(e) {
   var dir = path.normalize(this.getAttribute('data-path'));
   if (dir === '~') {
     dir = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
   }
   $(this).closest('ul').find('li').removeClass('active');
   $(this).closest('li').addClass('active');
   addressbar.set(dir);
   folder.open(dir);
   e.preventDefault();
   e.stopPropagation();
   return false;
 });
Пример #8
0
$(document).ready(function() {
	var folder     = new folder_view.Folder($('#beta'));
	var addressbar = new abar.AddressBar($('#addressbar'));
  var currDir    = process.cwd();
  var numFolds   = 0;
  
  folder.open(currDir);			         // opens current working directory
  addressbar.set(currDir);


  folder.on('navigate', function(dir, mime) {
    if (mime.type == 'folder') {
      addressbar.enter(mime);
    } else {
      shell.openItem(mime.path);
    }
  });

  addressbar.on('navigate', function(dir) {
    folder.open(dir);
  });

});
Пример #9
0
function backgroundInit() {
    var folder = new folder_view.Folder($("#files"))
    var addressbar = new abar.AddressBar($("#addressbar"))

    function explore(path) {
        var s = fs.statSync(path)
        if (s.isFile()) {
            return folder.emit("navigate", path, {
                name: path.substring(path.lastIndexOf("\\") + 1),
                path: path,
                type: "file"
            })
        }
        writeModel("page", "explore")
        addressbar.set(path)
        folder.open(path, fileFilter)
        storage.set("path", path)
    }

    // call fekit
    eventCenter.on("command.run", function(cmd, args) {
        cmd = cmd.trim()
        if (cmd == "config") {
            var p = $("#files .config").data("path")
            args.callback && args.callback()
            return folder.emit("navigate", p, {
                name: "fekit.config",
                path: p,
                type: "file",
            })
        }
        execCMD(cmd, args)
    })

    eventCenter.on("config.save", function(path, content, callback, exitAfterSave) {
        if (exitAfterSave != "exit") {
            fs.writeFileSync(path, content)
            logger.success("保存成功")
        }
        if (exitAfterSave) {
            explore(path.substring(0, path.lastIndexOf("\\")))
        }
        callback && callback()
    })

    eventCenter.on("dir", explore)

    addressbar.on("paths", function(mine) {
        writeModel("paths", mine.paths)
    })

    addressbar.on("navigate", function(dir) {
        explore(dir)
    })

    eventCenter.on("dir.navigate", function(dir) {
        explore(dir)
    })

    folder.on("files", function(dir, data) {
        var newFiles = data.files
        newFiles = newFiles.sort(function(a, b) {
            if (a._type === "fekit") {
                cache["canStartServer"][dir] = true
                return 1
            }
        })
        writeModel("files", newFiles.reverse())
        var fkitcfg = dir + "\\" + "fekit.config"
        writeModel("isFekitModules", fs.existsSync(fkitcfg))

    })

    folder.on("navigate", function(dir, mime) {
        if (mime.type == "folder") {
            explore(mime.path)
            // 编辑fekit.config
        } else if (mime.name === "fekit.config") {
            writeModel("page", "edit")
            addressbar.set(mime.path)
            // var start = +(new Date())
            // 不用缓存,json文件过大的时候会有点卡
            writeModel("configJSON", {
                name: mime.name,
                path: mime.path,
                content: fs.readFileSync(mime.path)
            })
            // logger.log(+(new Date()) - start)
        } else {
            shell.openItem(mime.path)
        }
    })


    explore(targetDir)
    $("#ct")[0].removeAttribute("ms-skip")
    eventCenter.on("ctrl.s", function() {
        if (fekitModel.page === "edit") fekitModel.save()
    })
    avalon.scan()
    // 不好使啊
    // process.on('exit', function() {
    //     eventCenter.emit("ctrl.c")
    // })
    logger.success("init finished")
}
Пример #10
0
 pictures.addEventListener('click', function(){
   folder.open(userPath+"/Pictures");
   addressbar.set(userPath+"/Pictures");
 });
Пример #11
0
 documents.addEventListener('click', function(){
   folder.open(userPath+"/Documents");
   addressbar.set(userPath+"/Documents");
 });
Пример #12
0
 home.addEventListener('click', function(){
   folder.open(userPath);
   addressbar.set(userPath);
 });
Пример #13
0
 function selectDrive() {
     folder.selectDrive();
     tree.selectDrive();
     addressbar.selectDrive();
 }
Пример #14
0
$(document).ready(function() {
  var app = gui.App;
  var settings = {
    app:        app,
    thumbSize:  96,
    showHidden: true,
    document:   document
  };

  var dataPath = app.dataPath + ""; //cast to string
  var thumbDir = path.join(dataPath, "/thumbs/");
  if (!fs.existsSync(thumbDir)) {
    fs.mkdirSync(thumbDir);
  }
  
  var startDir   = getStartDir(app);
  var cwdElt = $('#current-directory');
  cwdElt.find('> a').attr('data-path', startDir)[0].childNodes[1].textContent = ' ' + path.basename(startDir);

  var folder     = new folder_view.Folder(settings, $('#files'));
  var addressbar = new abar.AddressBar($('#addressbar'));
  var thumbSize  = new controls.ThumbSize(settings, $('#thumb-size-input'));
  var options    = new controls.Options(settings, $('#options-box'));
  var reThumb    = debounce(function() {folder.cancelThumbs(); folder.updateThumbnails();}, 500);

  thumbSize.on('update', function(thumbSize) {
    console.log("New thumbnail size: ", thumbSize);
    settings.thumbSize = thumbSize;
    var cssRule = getCSSRule('.file');
    if (cssRule) {
      cssRule.style.width = thumbSize + 'px';
      cssRule = getCSSRule('.file .name');
      if (cssRule) {
        cssRule.style.fontSize = Math.max(0.6, Math.min(1.0, thumbSize / 96)) + "em";
      }
      reThumb();
    }
  });

  options.on('reload', function() {
    console.log('reloading');
    folder.open(); // refresh
  });

  var dirList = $('#directory-list');
  folder.on('discover', function(item) {
    dirList.append('<li><a class="folder-link" href="#' + item.id +'">' + item.name + '</a></li>');
  });

  folder.open(startDir);
  addressbar.set(startDir);

  folder.on('navigate', function(dir, mime) {
    if (mime.type == 'folder') {
      addressbar.enter(mime);
    } else {
      shell.openItem(mime.path);
    }
  });

  addressbar.on('navigate', function(dir) {
    folder.open(dir);
  });

  $('#directory-list').on('click', '.folder-link', function(e) {
    var link = this.href;
    console.log('clicked link', link, this);
    $('#files').scrollTo($(link));
    e.preventDefault();
    return false;
  });

  $('.filesystem-links').on('click', 'li > a', function(e) {
    var dir = path.normalize(this.getAttribute('data-path'));
    if (dir === '~') {
      dir = process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
    }
    $(this).closest('ul').find('li').removeClass('active');
    $(this).closest('li').addClass('active');
    addressbar.set(dir);
    folder.open(dir);
    e.preventDefault();
    e.stopPropagation();
    return false;
  });
});