diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad7dda35..ad55cb8b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -38,7 +38,8 @@ Changelog for Redmine DMSF
* New: Issue #200 - Update the french translation for the multi upload module
* Fix: Issue #202 - unable to create Custom Field when DMSF plugin installed
* Fix: Issue #203 - Little typing error in french translation
-
+* Fix: Issue #206 - "Select All" checkbox not functioning
+* Fix: Issue #207 - locks by deleted users producte internal server error 500
1.4.6: *2013-10-18*
-----------------------
diff --git a/app/views/dmsf/show.html.erb b/app/views/dmsf/show.html.erb
index 608bb2fc..d18d9a9c 100644
--- a/app/views/dmsf/show.html.erb
+++ b/app/views/dmsf/show.html.erb
@@ -116,9 +116,13 @@
|
<%= format_time(subfolder.updated_at) %>
<% if locked_for_user %>
- <%= link_to(image_tag('locked.png', :plugin => :redmine_dmsf),
- {:controller => 'users', :action => 'show', :id => subfolder.lock.reverse[0].user },
- :title => l(:title_locked_by_user, :user => subfolder.lock.reverse[0].user.to_s)) %>
+ <% if subfolder.lock.reverse[0].user %>
+ <%= link_to(image_tag('locked.png', :plugin => :redmine_dmsf),
+ { :controller => 'users', :action => 'show', :id => subfolder.lock.reverse[0].user },
+ :title => l(:title_locked_by_user, :user => subfolder.lock.reverse[0].user.to_s)) %>
+ <% else %>
+ <%= image_tag('locked.png', :title => l(:notice_account_unknown_email), :plugin => :redmine_dmsf) %>
+ <% end %>
<% elsif locked %>
<%= image_tag('lockedbycurrent.png', :title => l(:title_locked_by_you), :plugin => :redmine_dmsf) %>
<% end %>
@@ -201,9 +205,13 @@
|
<%= format_time(file.last_revision.updated_at) %>
<% if locked_for_user %>
- <%= link_to(image_tag('locked.png', :plugin => :redmine_dmsf),
- {:controller => 'users', :action => 'show', :id => file.lock.reverse[0].user },
- :title => l(:title_locked_by_user, :user => file.lock.reverse[0].user.to_s)) %>
+ <% if file.lock.reverse[0].user %>
+ <%= link_to(image_tag('locked.png', :plugin => :redmine_dmsf),
+ {:controller => 'users', :action => 'show', :id => file.lock.reverse[0].user },
+ :title => l(:title_locked_by_user, :user => file.lock.reverse[0].user.to_s)) %>
+ <% else %>
+ <%= image_tag('locked.png', :title => l(:notice_account_unknown_email), :plugin => :redmine_dmsf) %>
+ <% end %>
<% elsif locked %>
<%= image_tag('lockedbycurrent.png', :title => l(:title_locked_by_you), :plugin => :redmine_dmsf) %>
<% end %>
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 4ca60167..7ffb39eb 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -38,6 +38,7 @@ cs:
error_folder_is_not_empty: Adresář není prázdný
error_folder_title_is_already_used: Název již existuje
notice_folder_details_were_saved: Detaily složky byly uloženy
+ error_folder_is_locked: Adresář je zamčen
error_file_is_locked: Soubor je zamčen
notice_file_deleted: Soubor byl smazán
error_at_least_one_revision_must_be_present: Musí existovat alespoň jedna revize
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 7c3717fa..38490799 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -39,6 +39,7 @@ en:
error_folder_is_not_empty: Folder is not empty
error_folder_title_is_already_used: Title is already used
notice_folder_details_were_saved: Folder details were saved
+ error_folder_is_locked: Folder is locked
error_file_is_locked: File is locked
notice_file_deleted: File deleted
error_at_least_one_revision_must_be_present: At least one revision must be present
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 3c175dad..816b99d0 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -37,6 +37,7 @@ es:
error_folder_is_not_empty: La carpeta no está vacía
error_folder_title_is_already_used: El título ingresado ya está siendo usado por otro documento
notice_folder_details_were_saved: Los detalles de la carpeta fueron grabados correctamente
+ error_folder_is_locked: Carpeta bloqueado
error_file_is_locked: Archivo bloqueado
notice_file_deleted: Archivo borrado
error_at_least_one_revision_must_be_present: al menos una revisión debe estar presente
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 0811f3dc..215c69e2 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -39,6 +39,7 @@ fr:
error_folder_is_not_empty: "Le dossier n'est pas vide"
error_folder_title_is_already_used: Le titre du fichier est déjà utilisé
notice_folder_details_were_saved: Les détails du dossier ont été enregistrés
+ error_folder_is_locked: Le dossier est verrouillé
error_file_is_locked: Le fichier est verrouillé
notice_file_deleted: Le fichier a été supprimé
error_at_least_one_revision_must_be_present: Au moins une révision est requise
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 15147867..a0b06d63 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -37,6 +37,7 @@ ja:
error_folder_is_not_empty: フォルダが空ではありません
error_folder_title_is_already_used: タイトルは既に使われています
notice_folder_details_were_saved: フォルダの詳細を保存しました
+ error_folder_is_locked: Folder is locked
error_file_is_locked: ファイルはロックされています
notice_file_deleted: ファイルを削除しました
error_at_least_one_revision_must_be_present: 少なくとも1つのリビジョンが必要です
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 44f6c294..81bde9fd 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -37,6 +37,7 @@ ru:
error_folder_is_not_empty: Папка не пустая
error_folder_title_is_already_used: Название папки уже используется
notice_folder_details_were_saved: Описание папки было сохранено
+ error_folder_is_locked: Папка заблокированa
error_file_is_locked: Файл заблокирован
notice_file_deleted: Файл удален
error_at_least_one_revision_must_be_present: По крайней мере, одна редакция должна присутствовать
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 411eb6c6..6e7faa41 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -37,7 +37,8 @@ sl:
error_folder_is_not_empty: Mapa ni prazna
error_folder_title_is_already_used: Naslov je že uporabljen
notice_folder_details_were_saved: Podatki o mapi so shranjeni
- error_file_is_locked: Datoteka je zaklenjena
+ error_folder_is_locked: Папка заблокированa
+ error_file_is_locked: Mapa je zaklenjena
notice_file_deleted: Datoteka izbrisana
error_at_least_one_revision_must_be_present: Vsaj ena verzija mora obstajati
notice_revision_deleted: Verzija izbrisana
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 15f50358..c907664e 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -37,6 +37,7 @@ zh:
error_folder_is_not_empty: 非空文件夹
error_folder_title_is_already_used: 标题已经被使用
notice_folder_details_were_saved: 文件夹详细信息已保存
+ error_file_is_locked: Folder is locked
error_file_is_locked: 文件被锁定
notice_file_deleted: 文件已删除
error_at_least_one_revision_must_be_present: 至少一个修订版本必须存在
diff --git a/lib/redmine_dmsf/lockable.rb b/lib/redmine_dmsf/lockable.rb
index 2a56893b..8055fe12 100644
--- a/lib/redmine_dmsf/lockable.rb
+++ b/lib/redmine_dmsf/lockable.rb
@@ -91,7 +91,7 @@ module RedmineDmsf
locks.each {|lock|
next if lock.expired? #Incase we're inbetween updates
if (lock.lock_scope == :scope_exclusive && b_shared.nil?)
- return true if lock.user.id != User.current.id
+ return true if (!lock.user) || (lock.user.id != User.current.id)
else
b_shared = true if b_shared.nil?
b_shared = false if lock.user.id == User.current.id
@@ -120,7 +120,7 @@ module RedmineDmsf
else
b_destroyed = false
existing.each {|lock|
- if (lock.user.id == User.current.id)
+ if (lock.user && (lock.user.id == User.current.id)) || User.current.admin?
lock.destroy
b_destroyed = true
break
|