ignore dead optical drives, less duplicate js

<drive letter>.is_dir() throws an error with empty optical drives, fixd

navigation link generation had too much copypasted code around, now it
looks nicer