Exemplo n.º 1
0
  scandir() {
    const metadata = PackageManager.getPackages();
    const files = [];

    Object.keys(metadata).forEach((m) => {
      const iter = metadata[m];
      if ( iter.type !== 'extension' ) {
        files.push(new FileMetadata({
          filename: iter.name,
          type: 'application',
          path: 'applications:///' + m,
          mime: 'osjs/application'
        }, 'osjs/application'));
      }
    });

    return Promise.resolve(files);
  }
Exemplo n.º 2
0
  init() {
    const root = super.init(...arguments);

    const cols = [{label: _('LBL_NAME')}];
    const rows = [];
    const metadata = PackageManager.getPackages();

    (this.args.list || []).forEach((name) => {
      const iter = metadata[name];

      if ( iter && iter.type === 'application' ) {
        const label = [iter.name];
        if ( iter.description ) {
          label.push(iter.description);
        }
        rows.push({
          value: iter,
          columns: [
            {label: label.join(' - '), icon: Theme.getIcon(iter.icon, null, name), value: JSON.stringify(iter)}
          ]
        });
      }
    });

    this._find('ApplicationList').set('columns', cols).add(rows).on('activate', (ev) => {
      this.onClose(ev, 'ok');
    });

    let file = '<unknown file>';
    let label = '<unknown mime>';
    if ( this.args.file ) {
      file = Utils.format('{0} ({1})', this.args.file.filename, this.args.file.mime);
      label = _('DIALOG_APPCHOOSER_SET_DEFAULT', this.args.file.mime);
    }

    this._find('FileName').set('value', file);
    this._find('SetDefault').set('label', label);

    return root;
  }