Merge branch 'devel-1.5.3'
Conflicts: config/locales/pt-BR.yml
This commit is contained in:
commit
544acbf181
10
CHANGELOG.md
10
CHANGELOG.md
@ -1,6 +1,16 @@
|
||||
Changelog for Redmine DMSF
|
||||
==========================
|
||||
|
||||
1.5.3 *2015-08-10*
|
||||
------------------
|
||||
|
||||
Plupload 2.1.8
|
||||
Redmine >= 3.0 required
|
||||
|
||||
* Bug: #430 - Got 500 error when change directory name
|
||||
* Bug: #427 - Can't access to WebDAV root directory
|
||||
* Bug: #422 - Document uploading in IE
|
||||
|
||||
1.5.2 *2015-07-13*
|
||||
------------------
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
Redmine DMSF Plugin
|
||||
===================
|
||||
|
||||
The current version of Redmine DMSF is **1.5.2** [](https://travis-ci.org/danmunn/redmine_dmsf)
|
||||
The current version of Redmine DMSF is **1.5.3** [](https://travis-ci.org/danmunn/redmine_dmsf)
|
||||
|
||||
Redmine DMSF is Document Management System Features plugin for Redmine issue tracking system; It is aimed to replace current Redmine's Documents module.
|
||||
|
||||
@ -42,7 +42,7 @@ Features
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
* Redmine 2.5.0 or higher
|
||||
* Redmine 3.0.0 or higher
|
||||
|
||||
### Fulltext search (optional)
|
||||
|
||||
@ -140,7 +140,7 @@ In the file <redmine_root>/public/help/<language>/wiki_syntax_detailed.html, aft
|
||||
|
||||
In the file <redmine_root>/public/help/<language>/wiki_syntax.html, at the end of the Redmine links section:
|
||||
|
||||
<tr><th></th><td>{{dmsf(83)}}</td><td>Document <a href="#">#83</a></td></tr>
|
||||
<tr><th></th><td>{{dmsf(83)}}</td><td>Document <a href="#">#83</a></td></tr>
|
||||
|
||||
There's a patch that helps you to modify all help files at once. In your Redmine folder:
|
||||
|
||||
@ -218,4 +218,4 @@ Changes with tests, and full documentation are preferred.
|
||||
Additional Documentation
|
||||
------------------------
|
||||
|
||||
[CHANGELOG.md](CHANGELOG.md) - Project changelog
|
||||
[CHANGELOG.md](CHANGELOG.md) - Project changelog
|
||||
@ -306,8 +306,9 @@ class DmsfController < ApplicationController
|
||||
redirect_to dmsf_folder_path(:id => @project, :folder_id => @folder)
|
||||
return
|
||||
end
|
||||
@pathfolder = copy_folder(@folder)
|
||||
@folder.attributes = params[:dmsf_folder]
|
||||
@pathfolder = copy_folder(@folder)
|
||||
@folder.title = params[:dmsf_folder][:title]
|
||||
@folder.description = params[:dmsf_folder][:description]
|
||||
|
||||
# Custom fields
|
||||
if params[:dmsf_folder][:custom_field_values].present?
|
||||
|
||||
@ -49,9 +49,10 @@ class DmsfWorkflowsController < ApplicationController
|
||||
file = DmsfFile.joins(:revisions).where(:dmsf_file_revisions => {:id => revision.id}).first
|
||||
if file
|
||||
begin
|
||||
file.unlock!
|
||||
file.unlock! true
|
||||
rescue DmsfLockError => e
|
||||
logger.warn e.message
|
||||
flash[:info] = e.message
|
||||
#logger.warn e.message
|
||||
end
|
||||
end
|
||||
if revision.workflow == DmsfWorkflow::STATE_APPROVED
|
||||
@ -287,18 +288,18 @@ class DmsfWorkflowsController < ApplicationController
|
||||
step = params[:step].to_i
|
||||
end
|
||||
operator = (params[:commit] == l(:dmsf_and)) ? DmsfWorkflowStep::OPERATOR_AND : DmsfWorkflowStep::OPERATOR_OR
|
||||
users = User.where(:id => params[:user_ids])
|
||||
users = User.where(:id => params[:user_ids]).to_a
|
||||
if users.count > 0
|
||||
users.each do |user|
|
||||
ws = DmsfWorkflowStep.new(
|
||||
:dmsf_workflow_id => @dmsf_workflow.id,
|
||||
:step => step,
|
||||
:user_id => user.id,
|
||||
:operator => operator)
|
||||
ws = DmsfWorkflowStep.new
|
||||
ws.dmsf_workflow_id = @dmsf_workflow.id
|
||||
ws.step = step
|
||||
ws.user_id = user.id
|
||||
ws.operator = operator
|
||||
if ws.save
|
||||
@dmsf_workflow.dmsf_workflow_steps << ws
|
||||
else
|
||||
flash[:error] = @dmsf_workflow.errors.full_messages.to_sentence
|
||||
flash[:error] = ws.errors.full_messages.to_sentence
|
||||
end
|
||||
end
|
||||
else
|
||||
|
||||
@ -35,31 +35,15 @@ class DmsfFile < ActiveRecord::Base
|
||||
belongs_to :project
|
||||
belongs_to :folder, :class_name => 'DmsfFolder', :foreign_key => 'dmsf_folder_id'
|
||||
belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id'
|
||||
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
has_many :revisions, -> { order("#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfFileRevision', :foreign_key => 'dmsf_file_id',
|
||||
:dependent => :destroy
|
||||
has_many :locks, -> { where(entity_type: 0).order("#{DmsfLock.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
|
||||
has_many :referenced_links, -> { where target_type: DmsfFile.model_name.to_s},
|
||||
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
|
||||
accepts_nested_attributes_for :revisions, :locks, :referenced_links, :project
|
||||
else
|
||||
has_many :revisions, :class_name => 'DmsfFileRevision', :foreign_key => 'dmsf_file_id',
|
||||
:order => "#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC",
|
||||
:dependent => :destroy
|
||||
has_many :locks, :class_name => 'DmsfLock', :foreign_key => 'entity_id',
|
||||
:order => "#{DmsfLock.table_name}.updated_at DESC",
|
||||
:conditions => {:entity_type => 0},
|
||||
:dependent => :destroy
|
||||
has_many :referenced_links, :class_name => 'DmsfLink', :foreign_key => 'target_id',
|
||||
:conditions => {:target_type => DmsfFile.model_name.to_s}, :dependent => :destroy
|
||||
end
|
||||
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
accepts_nested_attributes_for :revisions, :locks, :referenced_links
|
||||
end
|
||||
|
||||
has_many :revisions, -> { order("#{DmsfFileRevision.table_name}.major_version DESC, #{DmsfFileRevision.table_name}.minor_version DESC, #{DmsfFileRevision.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfFileRevision', :foreign_key => 'dmsf_file_id',
|
||||
:dependent => :destroy
|
||||
has_many :locks, -> { where(entity_type: 0).order("#{DmsfLock.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
|
||||
has_many :referenced_links, -> { where target_type: DmsfFile.model_name.to_s},
|
||||
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
|
||||
accepts_nested_attributes_for :revisions, :locks, :referenced_links, :project
|
||||
|
||||
scope :visible, lambda { |*args|
|
||||
where(deleted: false)
|
||||
@ -78,31 +62,18 @@ class DmsfFile < ActiveRecord::Base
|
||||
existing_file = DmsfFile.visible.find_file_by_name(self.project, self.folder, self.name)
|
||||
errors.add(:name, l('activerecord.errors.messages.taken')) unless
|
||||
existing_file.nil? || existing_file.id == self.id
|
||||
end
|
||||
|
||||
if (Rails::VERSION::MAJOR <= 3)
|
||||
attr_accessor :event_description
|
||||
end
|
||||
end
|
||||
|
||||
acts_as_event :title => Proc.new { |o| o.name },
|
||||
:description => Proc.new { |o|
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
desc = Redmine::Search.cache_store.fetch("DmsfFile-#{o.id}")
|
||||
if desc
|
||||
Redmine::Search.cache_store.delete("DmsfFile-#{o.id}")
|
||||
else
|
||||
desc = o.description
|
||||
desc += ' / ' if o.description.present? && o.last_revision.comment.present?
|
||||
desc += o.last_revision.comment if o.last_revision.comment.present?
|
||||
end
|
||||
:description => Proc.new { |o|
|
||||
desc = Redmine::Search.cache_store.fetch("DmsfFile-#{o.id}")
|
||||
if desc
|
||||
Redmine::Search.cache_store.delete("DmsfFile-#{o.id}")
|
||||
else
|
||||
desc = o.event_description
|
||||
unless desc.present?
|
||||
desc = o.description
|
||||
desc += ' / ' if o.description.present? && o.last_revision.comment.present?
|
||||
desc += o.last_revision.comment if o.last_revision.comment.present?
|
||||
end
|
||||
end
|
||||
desc = o.description
|
||||
desc += ' / ' if o.description.present? && o.last_revision.comment.present?
|
||||
desc += o.last_revision.comment if o.last_revision.comment.present?
|
||||
end
|
||||
desc
|
||||
},
|
||||
:url => Proc.new { |o| {:controller => 'dmsf_files', :action => 'show', :id => o} },
|
||||
@ -404,13 +375,9 @@ class DmsfFile < ActiveRecord::Base
|
||||
|
||||
if dmsf_file
|
||||
if user.allowed_to?(:view_dmsf_files, dmsf_file.project) &&
|
||||
(project_ids.blank? || (project_ids.include?(dmsf_file.project.id)))
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
(project_ids.blank? || (project_ids.include?(dmsf_file.project.id)))
|
||||
Redmine::Search.cache_store.write("DmsfFile-#{dmsf_file.id}",
|
||||
dochash['sample'].force_encoding('UTF-8')) if dochash['sample']
|
||||
else
|
||||
dmsf_file.event_description = dochash['sample'].force_encoding('UTF-8') if dochash['sample']
|
||||
end
|
||||
dochash['sample'].force_encoding('UTF-8')) if dochash['sample']
|
||||
break if(!options[:limit].blank? && results.count >= options[:limit])
|
||||
results << dmsf_file
|
||||
end
|
||||
|
||||
@ -27,21 +27,14 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
belongs_to :folder, :class_name => 'DmsfFolder', :foreign_key => 'dmsf_folder_id'
|
||||
belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id'
|
||||
has_many :access, :class_name => 'DmsfFileRevisionAccess', :foreign_key => 'dmsf_file_revision_id', :dependent => :destroy
|
||||
has_many :dmsf_workflow_step_assignment, :dependent => :destroy
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
accepts_nested_attributes_for :access, :dmsf_workflow_step_assignment, :file, :user
|
||||
end
|
||||
has_many :dmsf_workflow_step_assignment, :dependent => :destroy
|
||||
accepts_nested_attributes_for :access, :dmsf_workflow_step_assignment, :file, :user
|
||||
|
||||
attr_accessible :file, :title, :name, :description, :comment
|
||||
|
||||
# Returns a list of revisions that are not deleted here, or deleted at parent level either
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
scope :visible, -> { where(deleted: false) }
|
||||
scope :deleted, -> { where(deleted: true) }
|
||||
else
|
||||
scope :visible, where(:deleted => false)
|
||||
scope :deleted, where(:deleted => true)
|
||||
end
|
||||
scope :visible, -> { where(deleted: false) }
|
||||
scope :deleted, -> { where(deleted: true) }
|
||||
|
||||
acts_as_customizable
|
||||
acts_as_event :title => Proc.new {|o| "#{l(:label_dmsf_updated)}: #{o.file.dmsf_path_str}"},
|
||||
@ -49,28 +42,16 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
:datetime => Proc.new {|o| o.updated_at },
|
||||
:description => Proc.new {|o| o.comment },
|
||||
:author => Proc.new {|o| o.user }
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
acts_as_activity_provider :type => 'dmsf_file_revisions',
|
||||
:timestamp => "#{DmsfFileRevision.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevision.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revisions,
|
||||
:scope => select("#{DmsfFileRevision.table_name}.*").
|
||||
joins(
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id").
|
||||
where("#{DmsfFile.table_name}.deleted = :false", {:false => false})
|
||||
else
|
||||
acts_as_activity_provider :type => 'dmsf_file_revisions',
|
||||
:timestamp => "#{DmsfFileRevision.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevision.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revisions,
|
||||
:find_options => {:select => "#{DmsfFileRevision.table_name}.*",
|
||||
:joins =>
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id",
|
||||
:conditions => ["#{DmsfFile.table_name}.deleted = :false", {:false => false}]
|
||||
}
|
||||
end
|
||||
|
||||
acts_as_activity_provider :type => 'dmsf_file_revisions',
|
||||
:timestamp => "#{DmsfFileRevision.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevision.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revisions,
|
||||
:scope => select("#{DmsfFileRevision.table_name}.*").
|
||||
joins(
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id").
|
||||
where("#{DmsfFile.table_name}.deleted = :false", {:false => false})
|
||||
|
||||
validates :title, :name, :presence => true
|
||||
validates_format_of :name, :with => DmsfFolder.invalid_characters,
|
||||
|
||||
@ -21,10 +21,8 @@ class DmsfFileRevisionAccess < ActiveRecord::Base
|
||||
belongs_to :revision, :class_name => 'DmsfFileRevision', :foreign_key => 'dmsf_file_revision_id'
|
||||
belongs_to :user
|
||||
delegate :project, :to => :revision, :allow_nil => false
|
||||
delegate :file, :to => :revision, :allow_nil => false
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
accepts_nested_attributes_for :user, :revision
|
||||
end
|
||||
delegate :file, :to => :revision, :allow_nil => false
|
||||
accepts_nested_attributes_for :user, :revision
|
||||
|
||||
DownloadAction = 0
|
||||
EmailAction = 1
|
||||
@ -34,29 +32,16 @@ class DmsfFileRevisionAccess < ActiveRecord::Base
|
||||
:datetime => Proc.new {|o| o.updated_at },
|
||||
:description => Proc.new {|o| o.revision.comment },
|
||||
:author => Proc.new {|o| o.user }
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
acts_as_activity_provider :type => 'dmsf_file_revision_accesses',
|
||||
:timestamp => "#{DmsfFileRevisionAccess.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevisionAccess.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revision_accesses,
|
||||
:scope => select("#{DmsfFileRevisionAccess.table_name}.*").
|
||||
joins(
|
||||
"INNER JOIN #{DmsfFileRevision.table_name} ON #{DmsfFileRevisionAccess.table_name}.dmsf_file_revision_id = #{DmsfFileRevision.table_name}.id " +
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id").
|
||||
where("#{DmsfFile.table_name}.deleted = :false", {:false => false})
|
||||
else
|
||||
acts_as_activity_provider :type => 'dmsf_file_revision_accesses',
|
||||
:timestamp => "#{DmsfFileRevisionAccess.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevisionAccess.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revision_accesses,
|
||||
:find_options => {:select => "#{DmsfFileRevisionAccess.table_name}.*",
|
||||
:joins =>
|
||||
"INNER JOIN #{DmsfFileRevision.table_name} ON #{DmsfFileRevisionAccess.table_name}.dmsf_file_revision_id = #{DmsfFileRevision.table_name}.id " +
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id",
|
||||
:conditions => ["#{DmsfFile.table_name}.deleted = :false", {:false => false}]
|
||||
}
|
||||
end
|
||||
|
||||
acts_as_activity_provider :type => 'dmsf_file_revision_accesses',
|
||||
:timestamp => "#{DmsfFileRevisionAccess.table_name}.updated_at",
|
||||
:author_key => "#{DmsfFileRevisionAccess.table_name}.user_id",
|
||||
:permission => :view_dmsf_file_revision_accesses,
|
||||
:scope => select("#{DmsfFileRevisionAccess.table_name}.*").
|
||||
joins(
|
||||
"INNER JOIN #{DmsfFileRevision.table_name} ON #{DmsfFileRevisionAccess.table_name}.dmsf_file_revision_id = #{DmsfFileRevision.table_name}.id " +
|
||||
"INNER JOIN #{DmsfFile.table_name} ON #{DmsfFileRevision.table_name}.dmsf_file_id = #{DmsfFile.table_name}.id " +
|
||||
"INNER JOIN #{Project.table_name} ON #{DmsfFile.table_name}.project_id = #{Project.table_name}.id").
|
||||
where("#{DmsfFile.table_name}.deleted = :false", {:false => false})
|
||||
|
||||
end
|
||||
|
||||
@ -35,33 +35,18 @@ class DmsfFolder < ActiveRecord::Base
|
||||
has_many :subfolders, :class_name => 'DmsfFolder', :foreign_key => 'dmsf_folder_id',
|
||||
:dependent => :destroy
|
||||
has_many :files, :class_name => 'DmsfFile', :foreign_key => 'dmsf_folder_id',
|
||||
:dependent => :destroy
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
has_many :folder_links, -> { where :target_type => 'DmsfFolder' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :file_links, -> { where :target_type => 'DmsfFile' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :url_links, -> { where :target_type => 'DmsfUrl' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :referenced_links, -> { where :target_type => 'DmsfFolder' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
|
||||
has_many :locks, -> { where(entity_type: 1).order("#{DmsfLock.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
|
||||
accepts_nested_attributes_for :user, :project, :folder, :subfolders, :files, :folder_links, :file_links, :url_links, :referenced_links, :locks
|
||||
else
|
||||
has_many :folder_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => { :target_type => 'DmsfFolder' }, :dependent => :destroy
|
||||
has_many :file_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => { :target_type => 'DmsfFile' }, :dependent => :destroy
|
||||
has_many :url_links, :class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id',
|
||||
:conditions => { :target_type => 'DmsfUrl' }, :dependent => :destroy
|
||||
has_many :referenced_links, :class_name => 'DmsfLink', :foreign_key => 'target_id',
|
||||
:conditions => { :target_type => 'DmsfFolder' }, :dependent => :destroy
|
||||
has_many :locks, :class_name => 'DmsfLock', :foreign_key => 'entity_id',
|
||||
:order => "#{DmsfLock.table_name}.updated_at DESC",
|
||||
:conditions => {:entity_type => 1},
|
||||
:dependent => :destroy
|
||||
end
|
||||
:dependent => :destroy
|
||||
has_many :folder_links, -> { where :target_type => 'DmsfFolder' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :file_links, -> { where :target_type => 'DmsfFile' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :url_links, -> { where :target_type => 'DmsfUrl' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'dmsf_folder_id', :dependent => :destroy
|
||||
has_many :referenced_links, -> { where :target_type => 'DmsfFolder' },
|
||||
:class_name => 'DmsfLink', :foreign_key => 'target_id', :dependent => :destroy
|
||||
has_many :locks, -> { where(entity_type: 1).order("#{DmsfLock.table_name}.updated_at DESC") },
|
||||
:class_name => 'DmsfLock', :foreign_key => 'entity_id', :dependent => :destroy
|
||||
accepts_nested_attributes_for :user, :project, :folder, :subfolders, :files, :folder_links, :file_links, :url_links, :referenced_links, :locks
|
||||
|
||||
scope :visible, lambda { |*args|
|
||||
where(deleted: false)
|
||||
@ -71,20 +56,12 @@ class DmsfFolder < ActiveRecord::Base
|
||||
}
|
||||
|
||||
acts_as_customizable
|
||||
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
acts_as_searchable :columns => ["#{self.table_name}.title", "#{self.table_name}.description"],
|
||||
:project_key => 'project_id',
|
||||
:date_column => 'updated_at',
|
||||
:permission => :view_dmsf_files,
|
||||
:scope => self.joins(:project)
|
||||
else
|
||||
acts_as_searchable :columns => ["#{self.table_name}.title", "#{self.table_name}.description"],
|
||||
:project_key => 'project_id',
|
||||
:date_column => 'updated_at',
|
||||
:permission => :view_dmsf_files,
|
||||
:include => :project
|
||||
end
|
||||
|
||||
acts_as_searchable :columns => ["#{self.table_name}.title", "#{self.table_name}.description"],
|
||||
:project_key => 'project_id',
|
||||
:date_column => 'updated_at',
|
||||
:permission => :view_dmsf_files,
|
||||
:scope => self.joins(:project)
|
||||
|
||||
acts_as_event :title => Proc.new {|o| o.title},
|
||||
:description => Proc.new {|o| o.description },
|
||||
|
||||
@ -41,14 +41,9 @@ class DmsfLink < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
scope :visible, -> { where(deleted: false) }
|
||||
scope :deleted, -> { where(deleted: true) }
|
||||
else
|
||||
scope :visible, where(:deleted => false)
|
||||
scope :deleted, where(:deleted => true)
|
||||
end
|
||||
|
||||
scope :visible, -> { where(deleted: false) }
|
||||
scope :deleted, -> { where(deleted: true) }
|
||||
|
||||
def target_folder_id
|
||||
if self.target_type == DmsfFolder.model_name.to_s
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
# encoding: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
|
||||
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
|
||||
# Copyright (C) 2011-14 Karel Picman <karel.picman@kontorn.com>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontorn.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -26,20 +28,20 @@ class DmsfLock < ActiveRecord::Base
|
||||
belongs_to :folder, :class_name => 'DmsfFolder', :foreign_key => 'entity_id'
|
||||
belongs_to :user
|
||||
|
||||
#At the moment apparently we're only supporting a write lock?
|
||||
# At the moment apparently we're only supporting a write lock?
|
||||
|
||||
as_enum :lock_type, [:type_write, :type_other]
|
||||
as_enum :lock_scope, [:scope_exclusive, :scope_shared]
|
||||
|
||||
# We really loosly bind the value in the belongs_to above
|
||||
# We really loosely bind the value in the belongs_to above
|
||||
# here we just ensure the data internal to the model is correct
|
||||
# to ensure everything lists fine - it's the same as a join
|
||||
# just without runing the join in the first place
|
||||
# just without running the join in the first place
|
||||
def file
|
||||
entity_type == 0 ? super : nil;
|
||||
end
|
||||
|
||||
# see file, exact same scenario
|
||||
# See the file, exact same scenario
|
||||
def folder
|
||||
entity_type == 1 ? super : nil;
|
||||
end
|
||||
@ -57,11 +59,11 @@ class DmsfLock < ActiveRecord::Base
|
||||
self.delete_all ["#{DmsfLock.table_name}.expires_at IS NOT NULL && #{DmsfLock.table_name}.expires_at < ?", Time.now]
|
||||
end
|
||||
|
||||
#Lets allow our UUID to be searchable
|
||||
# Let's allow our UUID to be searchable
|
||||
def self.find(*args)
|
||||
if args.first && args.first.is_a?(String) && !args.first.match(/^\d*$/)
|
||||
lock = find_by_uuid(*args)
|
||||
raise ActiveRecord::RecordNotFound, "Couldn't find lock with uuid=#{args.first}" if lock.nil?
|
||||
raise ActiveRecord::RecordNotFound, "Couldn't find lock with uuid = #{args.first}" if lock.nil?
|
||||
lock
|
||||
else
|
||||
super
|
||||
@ -72,4 +74,4 @@ class DmsfLock < ActiveRecord::Base
|
||||
self.find(*args)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
@ -18,12 +18,9 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
class DmsfWorkflow < ActiveRecord::Base
|
||||
if (Rails::VERSION::MAJOR > 3)
|
||||
has_many :dmsf_workflow_steps, -> { order 'step ASC, operator DESC' }, :dependent => :destroy
|
||||
else
|
||||
has_many :dmsf_workflow_steps, :dependent => :destroy, :order => 'step ASC, operator DESC'
|
||||
end
|
||||
class DmsfWorkflow < ActiveRecord::Base
|
||||
|
||||
has_many :dmsf_workflow_steps, -> { order 'step ASC, operator DESC' }, :dependent => :destroy
|
||||
|
||||
attr_accessible :name
|
||||
|
||||
|
||||
@ -25,9 +25,7 @@ class DmsfWorkflowStep < ActiveRecord::Base
|
||||
validates :step, :presence => true
|
||||
validates :user_id, :presence => true
|
||||
validates :operator, :presence => true
|
||||
validates_uniqueness_of :user_id, :scope => [:dmsf_workflow_id, :step]
|
||||
|
||||
attr_accessible :dmsf_workflow_id, :step, :user_id, :operator
|
||||
validates_uniqueness_of :user_id, :scope => [:dmsf_workflow_id, :step]
|
||||
|
||||
OPERATOR_OR = 0
|
||||
OPERATOR_AND = 1
|
||||
|
||||
@ -240,8 +240,8 @@
|
||||
end
|
||||
%>
|
||||
|
||||
<% content_for :header_tags do %>
|
||||
<%= stylesheet_link_tag 'plupload/jquery.ui.plupload.css', :plugin => 'redmine_dmsf' %>
|
||||
<% content_for :header_tags do %>
|
||||
<%= javascript_include_tag 'bowser.min.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= stylesheet_link_tag 'jquery.dataTables/jquery-ui.dataTables.css', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'jquery.dataTables/jquery.dataTables.min.js', :plugin => 'redmine_dmsf' %>
|
||||
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
<%# Redmine plugin for Document Management System "Features"
|
||||
<%
|
||||
# encoding: utf-8
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
# Copyright (C) 2011 Vít Jonáš <vit.jonas@gmail.com>
|
||||
# Copyright (C) 2012 Daniel Munn <dan.munn@munnster.co.uk>
|
||||
# Copyright (C) 2011-14 Karel Picman <karel.picman@kontron.com>
|
||||
# Copyright (C) 2011-15 Karel Pičman <karel.picman@kontron.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
@ -16,7 +18,8 @@
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.%>
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
%>
|
||||
|
||||
<div class="box">
|
||||
<%= form_tag({:controller => 'dmsf_upload', :action => 'upload_files', :id => @project, :folder_id => @folder},
|
||||
@ -72,31 +75,48 @@
|
||||
</script>
|
||||
|
||||
<% content_for :header_tags do %>
|
||||
<%= javascript_include_tag 'bowser.min.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/plupload.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/plupload.flash.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/plupload.html5.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/plupload.html4.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/jquery.ui.plupload/jquery.ui.plupload.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag("plupload/i18n/#{I18n.locale.to_s.downcase}.js", :plugin => 'redmine_dmsf') if I18n.locale && !I18n.locale.to_s.match(/^en.*/) %>
|
||||
<%= stylesheet_link_tag 'plupload/jquery.ui.plupload.css', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/js/plupload.full.min.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag 'plupload/js/jquery.ui.plupload/jquery.ui.plupload.js', :plugin => 'redmine_dmsf' %>
|
||||
<%= javascript_include_tag("plupload/js/i18n/#{I18n.locale.to_s.downcase}.js", :plugin => 'redmine_dmsf') if I18n.locale && !I18n.locale.to_s.match(/^en.*/) %>
|
||||
|
||||
<script type="text/javascript">
|
||||
function initPlUploader(uploader) {
|
||||
uploader.html('<div></div>');
|
||||
uploader = jQuery('div', uploader);
|
||||
uploader.plupload({
|
||||
runtimes : 'html5,flash,html4',
|
||||
runtimes : 'html5,flash,silverlight,html4',
|
||||
url : '<%= url_for({:controller => 'dmsf_upload', :action => 'upload_file', :id => @project}) %>',
|
||||
max_file_size : '<%= "#{@ajax_upload_size}mb" %>',
|
||||
max_file_count: '<%= Setting.plugin_redmine_dmsf['dmsf_max_file_upload'].to_i if Setting.plugin_redmine_dmsf['dmsf_max_file_upload'].to_i > 0 %>',
|
||||
multipart: true,
|
||||
// Enable ability to drag'n'drop files onto the widget (currently only HTML5 supports that)
|
||||
dragdrop: true,
|
||||
multipart_params : {authenticity_token : jQuery('input[name=authenticity_token]').val()},
|
||||
|
||||
// Rename files by clicking on their titles
|
||||
rename: true,
|
||||
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {
|
||||
width : 200,
|
||||
height : 200,
|
||||
quality : 90,
|
||||
crop: true // crop to exact dimensions
|
||||
},
|
||||
|
||||
// Views to activate
|
||||
views: {
|
||||
list: true,
|
||||
thumbs: true, // Show thumbs
|
||||
active: 'thumbs'
|
||||
},
|
||||
|
||||
// Flash settings
|
||||
flash_swf_url : '<%= plugin_asset_path(:redmine_dmsf, 'javascripts', 'plupload/plupload.flash.swf') %>'
|
||||
flash_swf_url : '<%= plugin_asset_path(:redmine_dmsf, 'javascripts', 'plupload/js/Moxie.swf') %>',
|
||||
|
||||
// Silverlight settings
|
||||
silverlight_xap_url : '<%= plugin_asset_path(:redmine_dmsf, 'javascripts', 'plupload/js/Moxie.xap') %>'
|
||||
});
|
||||
jQuery('.plupload_scroll',uploader).resizable({
|
||||
handles: 's'
|
||||
@ -124,21 +144,13 @@
|
||||
.val(responseObject.original_filename);
|
||||
uploader.append(original_filename_input);
|
||||
} else {
|
||||
file.status = plupload.FAILED;
|
||||
// responseObject.error.file = file;
|
||||
// pluploader.trigger('Error', responseObject.error);
|
||||
file.status = plupload.FAILED;
|
||||
pluploader.trigger('UploadProgress', file);
|
||||
pluploader.trigger('QueueChanged');
|
||||
/*
|
||||
To-do: Though this is the documented method of reporting an error, on chrome this seems
|
||||
to result in a bug, where the file afterwards seems to be out of sync and fired at the same
|
||||
time as another, however this will only process one return from this. If I notify of a file fault, but don't
|
||||
trigger a message, all seems to work as indtended.
|
||||
*/
|
||||
pluploader.trigger('QueueChanged');
|
||||
}
|
||||
}
|
||||
if(pluploader.total.uploaded == pluploader.files.length) jQuery('#uploadform').submit();
|
||||
else if(pluploader.total.uploaded + pluploader.total.failed == pluploader.files.length) setTimeout(function() {jQuery('#uploadform').submit();}, 2000);
|
||||
else if((pluploader.total.uploaded + pluploader.total.failed) == pluploader.files.length) setTimeout(function() {jQuery('#uploadform').submit();}, 2000);
|
||||
else dmsfFileFieldCount++;
|
||||
return true;
|
||||
});
|
||||
|
||||
85
assets/javascripts/plupload/examples/custom.html
Normal file
85
assets/javascripts/plupload/examples/custom.html
Normal file
@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload - Custom example</title>
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
|
||||
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../js/plupload.dev.js"></script>
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<h1>Custom example</h1>
|
||||
|
||||
<p>Shows you how to use the core plupload API.</p>
|
||||
|
||||
<div id="filelist">Your browser doesn't have Flash, Silverlight or HTML5 support.</div>
|
||||
<br />
|
||||
|
||||
<div id="container">
|
||||
<a id="pickfiles" href="javascript:;">[Select files]</a>
|
||||
<a id="uploadfiles" href="javascript:;">[Upload files]</a>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<pre id="console"></pre>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// Custom example logic
|
||||
|
||||
var uploader = new plupload.Uploader({
|
||||
runtimes : 'html5,flash,silverlight,html4',
|
||||
browse_button : 'pickfiles', // you can pass an id...
|
||||
container: document.getElementById('container'), // ... or DOM Element itself
|
||||
url : 'upload.php',
|
||||
flash_swf_url : '../js/Moxie.swf',
|
||||
silverlight_xap_url : '../js/Moxie.xap',
|
||||
|
||||
filters : {
|
||||
max_file_size : '10mb',
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
init: {
|
||||
PostInit: function() {
|
||||
document.getElementById('filelist').innerHTML = '';
|
||||
|
||||
document.getElementById('uploadfiles').onclick = function() {
|
||||
uploader.start();
|
||||
return false;
|
||||
};
|
||||
},
|
||||
|
||||
FilesAdded: function(up, files) {
|
||||
plupload.each(files, function(file) {
|
||||
document.getElementById('filelist').innerHTML += '<div id="' + file.id + '">' + file.name + ' (' + plupload.formatSize(file.size) + ') <b></b></div>';
|
||||
});
|
||||
},
|
||||
|
||||
UploadProgress: function(up, file) {
|
||||
document.getElementById(file.id).getElementsByTagName('b')[0].innerHTML = '<span>' + file.percent + "%</span>";
|
||||
},
|
||||
|
||||
Error: function(up, err) {
|
||||
document.getElementById('console').appendChild(document.createTextNode("\nError #" + err.code + ": " + err.message));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
uploader.init();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
27
assets/javascripts/plupload/examples/dump.php
Normal file
27
assets/javascripts/plupload/examples/dump.php
Normal file
@ -0,0 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
<title>Plupload - Form dump</title>
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<h1>Post dump</h1>
|
||||
|
||||
<p>Shows the form items posted.</p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Value</th>
|
||||
</tr>
|
||||
<?php $count = 0; foreach ($_POST as $name => $value) { ?>
|
||||
<tr class="<?php echo $count % 2 == 0 ? 'alt' : ''; ?>">
|
||||
<td><?php echo htmlentities(stripslashes($name)) ?></td>
|
||||
<td><?php echo nl2br(htmlentities(stripslashes($value))) ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
217
assets/javascripts/plupload/examples/events.html
Normal file
217
assets/javascripts/plupload/examples/events.html
Normal file
@ -0,0 +1,217 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload - Events example</title>
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../js/plupload.full.min.js"></script>
|
||||
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../js/plupload.dev.js"></script>
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<h1>Events example</h1>
|
||||
|
||||
<div id="container">
|
||||
<a id="pickfiles" href="javascript:;">[Select files]</a>
|
||||
<a id="uploadfiles" href="javascript:;">[Upload files]</a>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<pre id="console"></pre>
|
||||
|
||||
<script type="text/javascript">
|
||||
var uploader = new plupload.Uploader({
|
||||
// General settings
|
||||
runtimes : 'silverlight,html4',
|
||||
browse_button : 'pickfiles', // you can pass in id...
|
||||
url : 'upload.php',
|
||||
chunk_size : '1mb',
|
||||
unique_names : true,
|
||||
|
||||
// Resize images on client-side if we can
|
||||
resize : { width : 320, height : 240, quality : 90 },
|
||||
|
||||
filters : {
|
||||
max_file_size : '10mb',
|
||||
|
||||
// Specify what files to browse for
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
flash_swf_url : '../js/Moxie.swf',
|
||||
silverlight_xap_url : '../js/Moxie.xap',
|
||||
|
||||
// PreInit events, bound before the internal events
|
||||
preinit : {
|
||||
Init: function(up, info) {
|
||||
log('[Init]', 'Info:', info, 'Features:', up.features);
|
||||
},
|
||||
|
||||
UploadFile: function(up, file) {
|
||||
log('[UploadFile]', file);
|
||||
|
||||
// You can override settings before the file is uploaded
|
||||
// up.setOption('url', 'upload.php?id=' + file.id);
|
||||
// up.setOption('multipart_params', {param1 : 'value1', param2 : 'value2'});
|
||||
}
|
||||
},
|
||||
|
||||
// Post init events, bound after the internal events
|
||||
init : {
|
||||
PostInit: function() {
|
||||
// Called after initialization is finished and internal event handlers bound
|
||||
log('[PostInit]');
|
||||
|
||||
document.getElementById('uploadfiles').onclick = function() {
|
||||
uploader.start();
|
||||
return false;
|
||||
};
|
||||
},
|
||||
|
||||
Browse: function(up) {
|
||||
// Called when file picker is clicked
|
||||
log('[Browse]');
|
||||
},
|
||||
|
||||
Refresh: function(up) {
|
||||
// Called when the position or dimensions of the picker change
|
||||
log('[Refresh]');
|
||||
},
|
||||
|
||||
StateChanged: function(up) {
|
||||
// Called when the state of the queue is changed
|
||||
log('[StateChanged]', up.state == plupload.STARTED ? "STARTED" : "STOPPED");
|
||||
},
|
||||
|
||||
QueueChanged: function(up) {
|
||||
// Called when queue is changed by adding or removing files
|
||||
log('[QueueChanged]');
|
||||
},
|
||||
|
||||
OptionChanged: function(up, name, value, oldValue) {
|
||||
// Called when one of the configuration options is changed
|
||||
log('[OptionChanged]', 'Option Name: ', name, 'Value: ', value, 'Old Value: ', oldValue);
|
||||
},
|
||||
|
||||
BeforeUpload: function(up, file) {
|
||||
// Called right before the upload for a given file starts, can be used to cancel it if required
|
||||
log('[BeforeUpload]', 'File: ', file);
|
||||
},
|
||||
|
||||
UploadProgress: function(up, file) {
|
||||
// Called while file is being uploaded
|
||||
log('[UploadProgress]', 'File:', file, "Total:", up.total);
|
||||
},
|
||||
|
||||
FileFiltered: function(up, file) {
|
||||
// Called when file successfully files all the filters
|
||||
log('[FileFiltered]', 'File:', file);
|
||||
},
|
||||
|
||||
FilesAdded: function(up, files) {
|
||||
// Called when files are added to queue
|
||||
log('[FilesAdded]');
|
||||
|
||||
plupload.each(files, function(file) {
|
||||
log(' File:', file);
|
||||
});
|
||||
},
|
||||
|
||||
FilesRemoved: function(up, files) {
|
||||
// Called when files are removed from queue
|
||||
log('[FilesRemoved]');
|
||||
|
||||
plupload.each(files, function(file) {
|
||||
log(' File:', file);
|
||||
});
|
||||
},
|
||||
|
||||
FileUploaded: function(up, file, info) {
|
||||
// Called when file has finished uploading
|
||||
log('[FileUploaded] File:', file, "Info:", info);
|
||||
},
|
||||
|
||||
ChunkUploaded: function(up, file, info) {
|
||||
// Called when file chunk has finished uploading
|
||||
log('[ChunkUploaded] File:', file, "Info:", info);
|
||||
},
|
||||
|
||||
UploadComplete: function(up, files) {
|
||||
// Called when all files are either uploaded or failed
|
||||
log('[UploadComplete]');
|
||||
},
|
||||
|
||||
Destroy: function(up) {
|
||||
// Called when uploader is destroyed
|
||||
log('[Destroy] ');
|
||||
},
|
||||
|
||||
Error: function(up, args) {
|
||||
// Called when error occurs
|
||||
log('[Error] ', args);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function log() {
|
||||
var str = "";
|
||||
|
||||
plupload.each(arguments, function(arg) {
|
||||
var row = "";
|
||||
|
||||
if (typeof(arg) != "string") {
|
||||
plupload.each(arg, function(value, key) {
|
||||
// Convert items in File objects to human readable form
|
||||
if (arg instanceof plupload.File) {
|
||||
// Convert status to human readable
|
||||
switch (value) {
|
||||
case plupload.QUEUED:
|
||||
value = 'QUEUED';
|
||||
break;
|
||||
|
||||
case plupload.UPLOADING:
|
||||
value = 'UPLOADING';
|
||||
break;
|
||||
|
||||
case plupload.FAILED:
|
||||
value = 'FAILED';
|
||||
break;
|
||||
|
||||
case plupload.DONE:
|
||||
value = 'DONE';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (typeof(value) != "function") {
|
||||
row += (row ? ', ' : '') + key + '=' + value;
|
||||
}
|
||||
});
|
||||
|
||||
str += row + " ";
|
||||
} else {
|
||||
str += arg + " ";
|
||||
}
|
||||
});
|
||||
|
||||
var log = document.getElementById('console');
|
||||
log.innerHTML += str + "\n";
|
||||
}
|
||||
|
||||
uploader.init();
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
139
assets/javascripts/plupload/examples/jquery/all_runtimes.html
Normal file
139
assets/javascripts/plupload/examples/jquery/all_runtimes.html
Normal file
@ -0,0 +1,139 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload - Queue widget example</title>
|
||||
|
||||
<link rel="stylesheet" href="../../js/jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" media="screen" />
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../../js/plupload.full.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../../js/plupload.dev.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<form method="post" action="dump.php">
|
||||
<h1>Queue widget example</h1>
|
||||
|
||||
<p>Shows the jQuery Plupload Queue widget and under different runtimes.</p>
|
||||
|
||||
<div style="float: left; margin-right: 20px">
|
||||
<h3>Flash runtime</h3>
|
||||
<div id="flash_uploader" style="width: 500px; height: 330px;">Your browser doesn't have Flash installed.</div>
|
||||
|
||||
<h3>Silverlight runtime</h3>
|
||||
<div id="silverlight_uploader" style="width: 500px; height: 330px;">Your browser doesn't have Silverlight installed.</div>
|
||||
</div>
|
||||
|
||||
<div style="float: left; margin-right: 20px">
|
||||
<h3>HTML 4 runtime</h3>
|
||||
<div id="html4_uploader" style="width: 500px; height: 330px;">Your browser doesn't have HTML 4 support.</div>
|
||||
|
||||
<h3>HTML 5 runtime</h3>
|
||||
<div id="html5_uploader" style="width: 500px; height: 330px;">Your browser doesn't support native upload.</div>
|
||||
</div>
|
||||
|
||||
<br style="clear: both" />
|
||||
|
||||
<input type="submit" value="Send" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
// Setup flash version
|
||||
$("#flash_uploader").pluploadQueue({
|
||||
// General settings
|
||||
runtimes : 'flash',
|
||||
url : '../upload.php',
|
||||
chunk_size : '1mb',
|
||||
unique_names : true,
|
||||
|
||||
filters : {
|
||||
max_file_size : '10mb',
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {width : 320, height : 240, quality : 90},
|
||||
|
||||
// Flash settings
|
||||
flash_swf_url : '../../js/Moxie.swf'
|
||||
});
|
||||
|
||||
|
||||
// Setup silverlight version
|
||||
$("#silverlight_uploader").pluploadQueue({
|
||||
// General settings
|
||||
runtimes : 'silverlight',
|
||||
url : '../upload.php',
|
||||
chunk_size : '1mb',
|
||||
unique_names : true,
|
||||
|
||||
filters : {
|
||||
max_file_size : '10mb',
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {width : 320, height : 240, quality : 90},
|
||||
|
||||
// Silverlight settings
|
||||
silverlight_xap_url : '../../js/Moxie.xap'
|
||||
});
|
||||
|
||||
// Setup html5 version
|
||||
$("#html5_uploader").pluploadQueue({
|
||||
// General settings
|
||||
runtimes : 'html5',
|
||||
url : '../upload.php',
|
||||
chunk_size : '1mb',
|
||||
unique_names : true,
|
||||
|
||||
filters : {
|
||||
max_file_size : '10mb',
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {width : 320, height : 240, quality : 90}
|
||||
});
|
||||
|
||||
|
||||
// Setup html4 version
|
||||
$("#html4_uploader").pluploadQueue({
|
||||
// General settings
|
||||
runtimes : 'html4',
|
||||
url : '../upload.php',
|
||||
unique_names : true,
|
||||
|
||||
filters : {
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,113 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload - jQuery UI Widget</title>
|
||||
|
||||
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../js/jquery.ui.plupload/css/jquery.ui.plupload.css" type="text/css" />
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../../js/plupload.full.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script>
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../../js/plupload.dev.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script>
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<h1>jQuery UI Widget</h1>
|
||||
|
||||
<p>You can see this example with different themes on the <a href="http://plupload.com/example_jquery_ui.php">www.plupload.com</a> website.</p>
|
||||
|
||||
<form id="form" method="post" action="../dump.php">
|
||||
<div id="uploader">
|
||||
<p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p>
|
||||
</div>
|
||||
<br />
|
||||
<input type="submit" value="Submit" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
// Initialize the widget when the DOM is ready
|
||||
$(function() {
|
||||
$("#uploader").plupload({
|
||||
// General settings
|
||||
runtimes : 'html5,flash,silverlight,html4',
|
||||
url : '../upload.php',
|
||||
|
||||
// User can upload no more then 20 files in one go (sets multiple_queues to false)
|
||||
max_file_count: 20,
|
||||
|
||||
chunk_size: '1mb',
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {
|
||||
width : 200,
|
||||
height : 200,
|
||||
quality : 90,
|
||||
crop: true // crop to exact dimensions
|
||||
},
|
||||
|
||||
filters : {
|
||||
// Maximum file size
|
||||
max_file_size : '1000mb',
|
||||
// Specify what files to browse for
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
// Rename files by clicking on their titles
|
||||
rename: true,
|
||||
|
||||
// Sort files
|
||||
sortable: true,
|
||||
|
||||
// Enable ability to drag'n'drop files onto the widget (currently only HTML5 supports that)
|
||||
dragdrop: true,
|
||||
|
||||
// Views to activate
|
||||
views: {
|
||||
list: true,
|
||||
thumbs: true, // Show thumbs
|
||||
active: 'thumbs'
|
||||
},
|
||||
|
||||
// Flash settings
|
||||
flash_swf_url : '../../js/Moxie.swf',
|
||||
|
||||
// Silverlight settings
|
||||
silverlight_xap_url : '../../js/Moxie.xap'
|
||||
});
|
||||
|
||||
|
||||
// Handle the case when form was submitted before uploading has finished
|
||||
$('#form').submit(function(e) {
|
||||
// Files in queue upload them first
|
||||
if ($('#uploader').plupload('getFiles').length > 0) {
|
||||
|
||||
// When all files are uploaded submit form
|
||||
$('#uploader').on('complete', function() {
|
||||
$('#form')[0].submit();
|
||||
});
|
||||
|
||||
$('#uploader').plupload('start');
|
||||
} else {
|
||||
alert("You must have at least one file in the queue.");
|
||||
}
|
||||
return false; // Keep the form from submitting
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,66 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload - Queue widget example</title>
|
||||
|
||||
<link rel="stylesheet" href="../../js/jquery.plupload.queue/css/jquery.plupload.queue.css" type="text/css" media="screen" />
|
||||
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../../js/plupload.full.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../../js/plupload.dev.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.plupload.queue/jquery.plupload.queue.js"></script>
|
||||
-->
|
||||
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<form method="post" action="dump.php">
|
||||
<div id="uploader">
|
||||
<p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p>
|
||||
</div>
|
||||
<input type="submit" value="Send" />
|
||||
</form>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
|
||||
// Setup html5 version
|
||||
$("#uploader").pluploadQueue({
|
||||
// General settings
|
||||
runtimes : 'html5,flash,silverlight,html4',
|
||||
url : '../upload.php',
|
||||
chunk_size: '1mb',
|
||||
rename : true,
|
||||
dragdrop: true,
|
||||
|
||||
filters : {
|
||||
// Maximum file size
|
||||
max_file_size : '10mb',
|
||||
// Specify what files to browse for
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,gif,png"},
|
||||
{title : "Zip files", extensions : "zip"}
|
||||
]
|
||||
},
|
||||
|
||||
// Resize images on clientside if we can
|
||||
resize : {width : 320, height : 240, quality : 90},
|
||||
|
||||
flash_swf_url : '../../js/Moxie.swf',
|
||||
silverlight_xap_url : '../../js/Moxie.xap'
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
125
assets/javascripts/plupload/examples/jquery/s3.php
Normal file
125
assets/javascripts/plupload/examples/jquery/s3.php
Normal file
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
/*
|
||||
In order to upload files to S3 using Flash runtime, one should start by placing crossdomain.xml into the bucket.
|
||||
crossdomain.xml can be as simple as this:
|
||||
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
|
||||
<cross-domain-policy>
|
||||
<allow-access-from domain="*" secure="false" />
|
||||
</cross-domain-policy>
|
||||
|
||||
In our tests SilverLight didn't require anything special and worked with this configuration just fine. It may fail back
|
||||
to the same crossdomain.xml as last resort.
|
||||
|
||||
!!!Important!!! Plupload UI Widget here, is used only for demo purposes and is not required for uploading to S3.
|
||||
*/
|
||||
|
||||
// important variables that will be used throughout this example
|
||||
$bucket = 'BUCKET';
|
||||
|
||||
// these can be found on your Account page, under Security Credentials > Access Keys
|
||||
$accessKeyId = 'ACCESS_KEY_ID';
|
||||
$secret = 'SECRET_ACCESS_KEY';
|
||||
|
||||
// prepare policy
|
||||
$policy = base64_encode(json_encode(array(
|
||||
// ISO 8601 - date('c'); generates uncompatible date, so better do it manually
|
||||
'expiration' => date('Y-m-d\TH:i:s.000\Z', strtotime('+1 day')),
|
||||
'conditions' => array(
|
||||
array('bucket' => $bucket),
|
||||
array('acl' => 'public-read'),
|
||||
array('starts-with', '$key', ''),
|
||||
// for demo purposes we are accepting only images
|
||||
array('starts-with', '$Content-Type', 'image/'),
|
||||
// Plupload internally adds name field, so we need to mention it here
|
||||
array('starts-with', '$name', ''),
|
||||
// One more field to take into account: Filename - gets silently sent by FileReference.upload() in Flash
|
||||
// http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTFlash.html
|
||||
array('starts-with', '$Filename', ''),
|
||||
)
|
||||
)));
|
||||
|
||||
// sign policy
|
||||
$signature = base64_encode(hash_hmac('sha1', $policy, $secret, true));
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
|
||||
|
||||
<title>Plupload to Amazon S3 Example</title>
|
||||
|
||||
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" />
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
|
||||
|
||||
<!-- Load plupload and all it's runtimes and finally the UI widget -->
|
||||
<link rel="stylesheet" href="../../js/jquery.ui.plupload/css/jquery.ui.plupload.css" type="text/css" />
|
||||
|
||||
|
||||
<!-- production -->
|
||||
<script type="text/javascript" src="../../js/plupload.full.min.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script>
|
||||
|
||||
<!-- debug
|
||||
<script type="text/javascript" src="../../js/moxie.js"></script>
|
||||
<script type="text/javascript" src="../../js/plupload.dev.js"></script>
|
||||
<script type="text/javascript" src="../../js/jquery.ui.plupload/jquery.ui.plupload.js"></script>
|
||||
-->
|
||||
|
||||
</head>
|
||||
<body style="font: 13px Verdana; background: #eee; color: #333">
|
||||
|
||||
<h1>Plupload to Amazon S3 Example</h1>
|
||||
|
||||
<div id="uploader">
|
||||
<p>Your browser doesn't have Flash, Silverlight or HTML5 support.</p>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
// Convert divs to queue widgets when the DOM is ready
|
||||
$(function() {
|
||||
$("#uploader").plupload({
|
||||
runtimes : 'html5,flash,silverlight',
|
||||
url : 'http://<?php echo $bucket; ?>.s3.amazonaws.com/',
|
||||
|
||||
multipart: true,
|
||||
multipart_params: {
|
||||
'key': '${filename}', // use filename as a key
|
||||
'Filename': '${filename}', // adding this to keep consistency across the runtimes
|
||||
'acl': 'public-read',
|
||||
'Content-Type': 'image/jpeg',
|
||||
'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>',
|
||||
'policy': '<?php echo $policy; ?>',
|
||||
'signature': '<?php echo $signature; ?>'
|
||||
},
|
||||
|
||||
// !!!Important!!!
|
||||
// this is not recommended with S3, since it will force Flash runtime into the mode, with no progress indication
|
||||
//resize : {width : 800, height : 600, quality : 60}, // Resize images on clientside, if possible
|
||||
|
||||
// optional, but better be specified directly
|
||||
file_data_name: 'file',
|
||||
|
||||
filters : {
|
||||
// Maximum file size
|
||||
max_file_size : '10mb',
|
||||
// Specify what files to browse for
|
||||
mime_types: [
|
||||
{title : "Image files", extensions : "jpg,jpeg"}
|
||||
]
|
||||
},
|
||||
|
||||
// Flash settings
|
||||
flash_swf_url : '../../js/Moxie.swf',
|
||||
|
||||
// Silverlight settings
|
||||
silverlight_xap_url : '../../js/Moxie.xap'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
125
assets/javascripts/plupload/examples/upload.php
Normal file
125
assets/javascripts/plupload/examples/upload.php
Normal file
@ -0,0 +1,125 @@
|
||||
<?php
|
||||
/**
|
||||
* upload.php
|
||||
*
|
||||
* Copyright 2013, Moxiecode Systems AB
|
||||
* Released under GPL License.
|
||||
*
|
||||
* License: http://www.plupload.com/license
|
||||
* Contributing: http://www.plupload.com/contributing
|
||||
*/
|
||||
|
||||
#!! IMPORTANT:
|
||||
#!! this file is just an example, it doesn't incorporate any security checks and
|
||||
#!! is not recommended to be used in production environment as it is. Be sure to
|
||||
#!! revise it and customize to your needs.
|
||||
|
||||
|
||||
// Make sure file is not cached (as it happens for example on iOS devices)
|
||||
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
|
||||
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
|
||||
header("Cache-Control: no-store, no-cache, must-revalidate");
|
||||
header("Cache-Control: post-check=0, pre-check=0", false);
|
||||
header("Pragma: no-cache");
|
||||
|
||||
/*
|
||||
// Support CORS
|
||||
header("Access-Control-Allow-Origin: *");
|
||||
// other CORS headers if any...
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
|
||||
exit; // finish preflight CORS requests here
|
||||
}
|
||||
*/
|
||||
|
||||
// 5 minutes execution time
|
||||
@set_time_limit(5 * 60);
|
||||
|
||||
// Uncomment this one to fake upload time
|
||||
// usleep(5000);
|
||||
|
||||
// Settings
|
||||
$targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload";
|
||||
//$targetDir = 'uploads';
|
||||
$cleanupTargetDir = true; // Remove old files
|
||||
$maxFileAge = 5 * 3600; // Temp file age in seconds
|
||||
|
||||
|
||||
// Create target dir
|
||||
if (!file_exists($targetDir)) {
|
||||
@mkdir($targetDir);
|
||||
}
|
||||
|
||||
// Get a file name
|
||||
if (isset($_REQUEST["name"])) {
|
||||
$fileName = $_REQUEST["name"];
|
||||
} elseif (!empty($_FILES)) {
|
||||
$fileName = $_FILES["file"]["name"];
|
||||
} else {
|
||||
$fileName = uniqid("file_");
|
||||
}
|
||||
|
||||
$filePath = $targetDir . DIRECTORY_SEPARATOR . $fileName;
|
||||
|
||||
// Chunking might be enabled
|
||||
$chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
|
||||
$chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 0;
|
||||
|
||||
|
||||
// Remove old temp files
|
||||
if ($cleanupTargetDir) {
|
||||
if (!is_dir($targetDir) || !$dir = opendir($targetDir)) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
while (($file = readdir($dir)) !== false) {
|
||||
$tmpfilePath = $targetDir . DIRECTORY_SEPARATOR . $file;
|
||||
|
||||
// If temp file is current file proceed to the next
|
||||
if ($tmpfilePath == "{$filePath}.part") {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Remove temp file if it is older than the max age and is not the current file
|
||||
if (preg_match('/\.part$/', $file) && (filemtime($tmpfilePath) < time() - $maxFileAge)) {
|
||||
@unlink($tmpfilePath);
|
||||
}
|
||||
}
|
||||
closedir($dir);
|
||||
}
|
||||
|
||||
|
||||
// Open temp file
|
||||
if (!$out = @fopen("{$filePath}.part", $chunks ? "ab" : "wb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
if (!empty($_FILES)) {
|
||||
if ($_FILES["file"]["error"] || !is_uploaded_file($_FILES["file"]["tmp_name"])) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
|
||||
}
|
||||
|
||||
// Read binary input stream and append it to temp file
|
||||
if (!$in = @fopen($_FILES["file"]["tmp_name"], "rb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
|
||||
}
|
||||
} else {
|
||||
if (!$in = @fopen("php://input", "rb")) {
|
||||
die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}');
|
||||
}
|
||||
}
|
||||
|
||||
while ($buff = fread($in, 4096)) {
|
||||
fwrite($out, $buff);
|
||||
}
|
||||
|
||||
@fclose($out);
|
||||
@fclose($in);
|
||||
|
||||
// Check if file has been uploaded
|
||||
if (!$chunks || $chunk == $chunks - 1) {
|
||||
// Strip the temp .part suffix off
|
||||
rename("{$filePath}.part", $filePath);
|
||||
}
|
||||
|
||||
// Return Success JSON-RPC response
|
||||
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}');
|
||||
@ -1,14 +0,0 @@
|
||||
// .po file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Vyberte soubory',
|
||||
'Add files to the upload queue and click the start button.' : 'Přidejte soubory do fronty a pak spusťte nahrávání.',
|
||||
'Filename' : 'Název souboru',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Velikost',
|
||||
'Add Files' : 'Přidat soubory',
|
||||
'Stop current upload' : 'Zastavit nahrávání',
|
||||
'Start uploading queue' : 'Spustit frontu nahrávání',
|
||||
'Drag files here.' : 'Sem přetáhněte soubory.',
|
||||
'Start Upload': 'Spustit nahrávání',
|
||||
'Uploaded %d/%d files': 'Nahráno %d/%d souborů'
|
||||
});
|
||||
@ -1,12 +0,0 @@
|
||||
// .po file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Vælg filer',
|
||||
'Add files to the upload queue and click the start button.' : 'Tilføj filer til køen, og tryk på start.',
|
||||
'Filename' : 'Filnavn',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Størrelse',
|
||||
'Add files' : 'Tilføj filer',
|
||||
'Stop current upload' : 'Stop upload',
|
||||
'Start uploading queue' : 'Start upload',
|
||||
'Drag files here.' : 'Træk filer her.'
|
||||
});
|
||||
@ -1,24 +0,0 @@
|
||||
// German
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Dateien hochladen',
|
||||
'Add files to the upload queue and click the start button.' : 'Dateien hinzufügen und auf \'Hochladen\' klicken.',
|
||||
'Filename' : 'Dateiname',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Größe',
|
||||
'Add files' : 'Dateien', // hinzufügen',
|
||||
'Stop current upload' : 'Aktuelles Hochladen stoppen',
|
||||
'Start uploading queue' : 'Hochladen starten',
|
||||
'Uploaded %d/%d files': '%d/%d Dateien sind hochgeladen',
|
||||
'N/A' : 'Nicht verfügbar',
|
||||
'Drag files here.' : 'Ziehen Sie die Dateien hier hin',
|
||||
'File extension error.': 'Fehler bei Dateiendung',
|
||||
'File size error.': 'Fehler bei Dateigröße',
|
||||
'Init error.': 'Initialisierungsfehler',
|
||||
'HTTP Error.': 'HTTP-Fehler',
|
||||
'Security error.': 'Sicherheitsfehler',
|
||||
'Generic error.': 'Typischer Fehler',
|
||||
'IO error.': 'Ein/Ausgabe-Fehler',
|
||||
'Stop Upload': 'Hochladen stoppen',
|
||||
'Start upload': 'Hochladen',
|
||||
'%d files queued': '%d Dateien in der Warteschlange'
|
||||
});
|
||||
@ -1,14 +0,0 @@
|
||||
// Greek
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Επιλέξτε Αρχεία',
|
||||
'Add files to the upload queue and click the start button.' : 'Προσθήκη αρχείων στην ουρά μεταφόρτωσης',
|
||||
'Filename' : 'Όνομα αρχείου',
|
||||
'Status' : 'Κατάσταση',
|
||||
'Size' : 'Μέγεθος',
|
||||
'Add Files' : 'Προσθέστε αρχεία',
|
||||
'Stop current upload' : 'Διακοπή τρέχουσας μεταφόρτωσης',
|
||||
'Start uploading queue' : 'Εκκίνηση μεταφόρτωσης ουράς αρχείων',
|
||||
'Drag files here.' : 'Σύρετε αρχεία εδώ',
|
||||
'Start Upload': 'Εκκίνηση μεταφόρτωσης',
|
||||
'Uploaded %d/%d files': 'Ανέβηκαν %d/%d αρχεία'
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
// Spanish
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Elija archivos:',
|
||||
'Add files to the upload queue and click the start button.' : 'Agregue archivos a la cola de subida y haga click en el boton de iniciar.',
|
||||
'Filename' : 'Nombre de archivo',
|
||||
'Status' : 'Estado',
|
||||
'Size' : 'Tamaño',
|
||||
'Add files' : 'Agregue archivos',
|
||||
'Stop current upload' : 'Detener subida actual',
|
||||
'Start uploading queue' : 'Iniciar subida de cola',
|
||||
'Uploaded %d/%d files': 'Subidos %d/%d archivos',
|
||||
'N/A' : 'No disponible',
|
||||
'Drag files here.' : 'Arrastre archivos aquí',
|
||||
'File extension error.': 'Error de extensión de archivo.',
|
||||
'File size error.': 'Error de tamaño de archivo.',
|
||||
'Init error.': 'Error de inicialización.',
|
||||
'HTTP Error.': 'Error de HTTP.',
|
||||
'Security error.': 'Error de seguridad.',
|
||||
'Generic error.': 'Error genérico.',
|
||||
'IO error.': 'Error de entrada/salida.',
|
||||
'Stop Upload': 'Detener Subida.',
|
||||
'Add Files': 'Agregar Archivos',
|
||||
'Start Upload': 'Comenzar Subida.',
|
||||
'%d files queued': '%d archivos en cola.'
|
||||
});
|
||||
@ -1,33 +0,0 @@
|
||||
// Estonian translation, et.js
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Vali faile',
|
||||
'Add files to the upload queue and click the start button.' : 'Lisa failid üleslaadimise järjekorda ja klõpsa alustamise nupule.',
|
||||
'Filename' : 'Failinimi',
|
||||
'Status' : 'Olek',
|
||||
'Size' : 'Suurus',
|
||||
'Add files' : 'Lisa faile',
|
||||
'Stop current upload' : 'Praeguse üleslaadimise peatamine',
|
||||
'Start uploading queue' : 'Järjekorras ootavate failide üleslaadimise alustamine',
|
||||
'Drag files here.' : 'Lohista failid siia.',
|
||||
'Start upload' : 'Alusta üleslaadimist',
|
||||
'Uploaded %d/%d files': 'Üles laaditud %d/%d',
|
||||
'Stop upload': 'Peata üleslaadimine',
|
||||
'Start upload': 'Alusta üleslaadimist',
|
||||
'%d files queued': 'Järjekorras on %d faili',
|
||||
'File: %s': 'Fail: %s',
|
||||
'Close': 'Sulge',
|
||||
'Using runtime: ': 'Kasutatakse varianti: ',
|
||||
'File: %f, size: %s, max file size: %m': 'Fail: %f, suurus: %s, suurim failisuurus: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Üleslaadimise element saab vastu võtta ainult %d faili ühe korraga. Ülejäänud failid jäetakse laadimata.',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'Üleslaadimise URL võib olla vale või seda pole',
|
||||
'Error: File too large: ': 'Viga: fail on liiga suur: ',
|
||||
'Error: Invalid file extension: ': 'Viga: sobimatu faililaiend: ',
|
||||
'File extension error.': 'Faililaiendi viga.',
|
||||
'File size error.': 'Failisuuruse viga.',
|
||||
'File count error.': 'Failide arvu viga.',
|
||||
'Init error.': 'Lähtestamise viga.',
|
||||
'HTTP Error.': 'HTTP ühenduse viga.',
|
||||
'Security error.': 'Turvaviga.',
|
||||
'Generic error.': 'Üldine viga.',
|
||||
'IO error.': 'S/V (I/O) viga.'
|
||||
});
|
||||
@ -1,37 +0,0 @@
|
||||
// Persian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'انتخاب فایل',
|
||||
'Add files to the upload queue and click the start button.' : 'اضافه کنید فایل ها را به صف آپلود و دکمه شروع را کلیک کنید.',
|
||||
'Filename' : 'نام فایل',
|
||||
'Status' : 'وضعیت',
|
||||
'Size' : 'سایز',
|
||||
'Add Files' : 'افزودن فایل',
|
||||
'Stop Upload' : 'توقف انتقال',
|
||||
'Start Upload' : 'شروع انتقال',
|
||||
'Add files' : 'افزودن فایل',
|
||||
'Add files.' : 'افزودن فایل',
|
||||
'Stop current upload' : 'توقف انتقال جاری',
|
||||
'Start uploading queue' : 'شروع صف انتقال',
|
||||
'Stop upload' : 'توقف انتقال',
|
||||
'Start upload' : 'شروع انتقال',
|
||||
'Uploaded %d/%d files': 'منتقل شد %d/%d از فایلها',
|
||||
'N/A' : 'N/A',
|
||||
'Drag files here.' : 'بکشید فایل ها رو به اینجا',
|
||||
'File extension error.': 'خطا پیشوند فایل',
|
||||
'File size error.': 'خطای سایز فایل',
|
||||
'File count error.': 'خطای تعداد فایل',
|
||||
'Init error.': 'خطا در استارت اسکریپت',
|
||||
'HTTP Error.': 'HTTP خطای',
|
||||
'Security error.': 'خطای امنیتی',
|
||||
'Generic error.': 'خطای عمومی',
|
||||
'IO error.': 'IO خطای',
|
||||
'File: %s': ' فایل ها : %s',
|
||||
'Close': 'بستن',
|
||||
'%d files queued': '%d فایل در صف',
|
||||
'Using runtime: ': 'استفاده میکنید از : ',
|
||||
'File: %f, size: %s, max file size: %m': فایل: %f, سایز: %s, بزرگترین سایز فایل: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'عنصر بارگذار فقط %d فایل رو در یک زمان می پذیرد. سایر فایل ها مجرد از این موضوع هستند.',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'آدرس آپلود اشتباه می باشد یا وجود ندارد',
|
||||
'Error: File too large: ': 'خطا: فایل حجیم است :: ',
|
||||
'Error: Invalid file extension: ': 'خطا پسوند فایل معتبر نمی باشد : '
|
||||
});
|
||||
@ -1,33 +0,0 @@
|
||||
// .fi file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Valitse tiedostoja',
|
||||
'Add files to the upload queue and click the start button.' : 'Lisää tiedostoja latausjonoon ja klikkaa aloita-nappia.',
|
||||
'Filename' : 'Tiedostonimi',
|
||||
'Status' : 'Tila',
|
||||
'Size' : 'Koko',
|
||||
'Add files' : 'Lisää tiedostoja',
|
||||
'Stop current upload' : 'Pysäytä nykyinen lataus',
|
||||
'Start uploading queue' : 'Aloita jonon lataus',
|
||||
'Drag files here.' : 'Raahaa tiedostot tänne.',
|
||||
'Start upload' : 'Aloita lataus',
|
||||
'Uploaded %d/%d files': 'Ladattu %d/%d tiedostoa',
|
||||
'Stop upload': 'Pysäytä lataus',
|
||||
'Start upload': 'Aloita lataus',
|
||||
'%d files queued': '%d tiedostoa jonossa',
|
||||
'File: %s': 'Tiedosto: %s',
|
||||
'Close': 'Sulje',
|
||||
'Using runtime: ': 'Käytetään ajonaikaista: ',
|
||||
'File: %f, size: %s, max file size: %m': 'Tiedosto: %f, koko: %s, maksimi tiedostokoko: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Latauselementti sallii ladata vain %d tiedosto(a) kerrallaan. Ylimääräiset tiedostot ohitettiin.',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'Lataus URL saattaa olla väärin tai ei ole olemassa',
|
||||
'Error: File too large: ': 'Virhe: Tiedosto liian suuri: ',
|
||||
'Error: Invalid file extension: ': 'Virhe: Kelpaamaton tiedostopääte: ',
|
||||
'File extension error.': 'Tiedostopäätevirhe.',
|
||||
'File size error.': 'Tiedostokokovirhe.',
|
||||
'File count error.': 'Tiedostolaskentavirhe.',
|
||||
'Init error.': 'Init virhe.',
|
||||
'HTTP Error.': 'HTTP virhe.',
|
||||
'Security error.': 'Tietoturvavirhe.',
|
||||
'Generic error.': 'Yleinen virhe.',
|
||||
'IO error.': 'I/O virhe.'
|
||||
});
|
||||
@ -1,35 +0,0 @@
|
||||
// French-Canadian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Sélectionnez les fichiers',
|
||||
'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file d\'attente et appuyez sur le bouton démarrer.',
|
||||
'Filename' : 'Nom du fichier',
|
||||
'Status' : 'Statut',
|
||||
'Size' : 'Taille',
|
||||
'Add files' : 'Ajouter Fichiers',
|
||||
'Stop current upload' : 'Arrêter le téléversement actuel',
|
||||
'Start uploading queue' : 'Démarrer le téléversement',
|
||||
'Uploaded %d/%d files': '%d/%d fichiers envoyés',
|
||||
'N/A' : 'Non applicable',
|
||||
'Drag files here.' : 'Glisser-déposer les fichiers ici',
|
||||
'File extension error.': 'Erreur d\'extension de fichier',
|
||||
'File size error.': 'Erreur de taille de fichier',
|
||||
'Init error.': 'Erreur d\'initialisation',
|
||||
'HTTP Error.': 'Erreur HTTP',
|
||||
'Security error.': 'Erreur de sécurité',
|
||||
'Generic error.': 'Erreur commune',
|
||||
'IO error.': 'Erreur E/S',
|
||||
'Stop Upload': 'Arrêter le téléversement',
|
||||
'Add Files': 'Ajouter des fichiers',
|
||||
'Start upload': 'Démarrer le téléversement',
|
||||
'%d files queued': '%d fichiers en attente',
|
||||
'File: %s':'Fichier: %s',
|
||||
'Close':'Fermer',
|
||||
'Using runtime:':'Moteur logiciel:',
|
||||
'File: %f, size: %s, max file size: %m':'Fichier: %f, poids: %s, poids maximal: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.':'La file accepte %d fichier(s) à la fois. Les fichiers en trop sont ignorés',
|
||||
'Upload URL might be wrong or doesn\'t exist':'L\'URL de téléversement est erroné ou inexistant',
|
||||
'Error: File to large: ':'Fichier trop volumineux: ',
|
||||
'Error: Invalid file extension: ':'Extension de fichier invalide: ',
|
||||
'File size error.':'Erreur de taile de fichier',
|
||||
'File count error.':'Erreur de décompte des fichiers'
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
// French
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Sélectionnez les fichiers',
|
||||
'Add files to the upload queue and click the start button.' : 'Ajoutez des fichiers à la file et appuyez sur le bouton démarrer.',
|
||||
'Filename' : 'Nom de fichier',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Taille',
|
||||
'Add files' : 'Ajouter Fichiers',
|
||||
'Stop current upload' : 'Arrêter l\'envoi en cours',
|
||||
'Start uploading queue' : 'Démarrer l\'envoi',
|
||||
'Uploaded %d/%d files': '%d/%d fichiers envoyés',
|
||||
'N/A' : 'Non applicable',
|
||||
'Drag files here.' : 'Déposer les fichiers ici.',
|
||||
'File extension error.': 'Erreur extension fichier',
|
||||
'File size error.': 'Erreur taille fichier.',
|
||||
'Init error.': 'Erreur d\'initialisation.',
|
||||
'HTTP Error.': 'Erreur HTTP.',
|
||||
'Security error.': 'Erreur de sécurité.',
|
||||
'Generic error.': 'Erreur générique.',
|
||||
'IO error.': 'Erreur E/S.',
|
||||
'Stop Upload': 'Arrêter les envois.',
|
||||
'Add Files': 'Ajouter des fichiers',
|
||||
'Start Upload': 'Démarrer les envois.',
|
||||
'%d files queued': '%d fichiers en attente.'
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
// Croatian
|
||||
plupload.addI18n({
|
||||
'Select files': 'Izaberite datoteke:',
|
||||
'Add files to the upload queue and click the start button.': 'Dodajte datoteke u listu i kliknite Upload.',
|
||||
'Filename': 'Ime datoteke',
|
||||
'Status': 'Status',
|
||||
'Size': 'Veličina',
|
||||
'Add files': 'Dodajte datoteke',
|
||||
'Stop current upload': 'Zaustavi trenutan upload',
|
||||
'Start uploading queue': 'Pokreni Upload',
|
||||
'Uploaded %d/%d files': 'Uploadano %d/%d datoteka',
|
||||
'N/A': 'N/A',
|
||||
'Drag files here.': 'Dovucite datoteke ovdje',
|
||||
'File extension error.': 'Greška ekstenzije datoteke.',
|
||||
'File size error.': 'Greška veličine datoteke.',
|
||||
'Init error.': 'Greška inicijalizacije.',
|
||||
'HTTP Error.': 'HTTP greška.',
|
||||
'Security error.': 'Sigurnosna greška.',
|
||||
'Generic error.': 'Generička greška.',
|
||||
'IO error.': 'I/O greška.',
|
||||
'Stop Upload': 'Zaustavi upload.',
|
||||
'Add Files': 'Dodaj datoteke',
|
||||
'Start Upload': 'Pokreni upload.',
|
||||
'%d files queued': '%d datoteka na čekanju.'
|
||||
});
|
||||
@ -1,33 +0,0 @@
|
||||
// Hungarian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Fájlok kiválasztása',
|
||||
'Add files to the upload queue and click the start button.' : 'Válaszd ki a fájlokat, majd kattints az Indítás gombra.',
|
||||
'Filename' : 'Fájlnév',
|
||||
'Status' : 'Állapot',
|
||||
'Size' : 'Méret',
|
||||
'Add files' : 'Hozzáadás',
|
||||
'Stop current upload' : 'Jelenlegi feltöltés megszakítása',
|
||||
'Start uploading queue' : 'Várakozási sor feltöltésének indítása',
|
||||
'Uploaded %d/%d files': 'Feltöltött fájlok: %d/%d',
|
||||
'N/A': 'Nem elérhető',
|
||||
'Drag files here.' : 'Húzd ide a fájlokat.',
|
||||
'Stop upload': 'Feltöltés megszakítása',
|
||||
'Start upload': 'Indítás',
|
||||
'%d files queued': '%d fájl sorbaállítva',
|
||||
'File: %s': 'Fájl: %s',
|
||||
'Close': 'Bezárás',
|
||||
'Using runtime: ': 'Használt runtime: ',
|
||||
'File: %f, size: %s, max file size: %m': 'Fájl: %f, méret: %s, maximális fájlméret: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'A megadott URL hibás vagy nem létezik',
|
||||
'Error: File too large: ': 'Hiba: A fájl túl nagy: ',
|
||||
'Error: Invalid file extension: ': 'Hiba: Érvénytelen fájlkiterjesztés: ',
|
||||
'File extension error.': 'Hibás fájlkiterjesztés.',
|
||||
'File size error.': 'Hibás fájlméret.',
|
||||
'File count error.': 'A fájlok számával kapcsolatos hiba.',
|
||||
'Init error.': 'Init hiba.',
|
||||
'HTTP Error.': 'HTTP hiba.',
|
||||
'Security error.': 'Biztonsági hiba.',
|
||||
'Generic error.': 'Általános hiba.',
|
||||
'IO error.': 'I/O hiba.'
|
||||
});
|
||||
@ -1,24 +0,0 @@
|
||||
// Italian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Seleziona i files',
|
||||
'Add files to the upload queue and click the start button.' : 'Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.',
|
||||
'Filename' : 'Nome file',
|
||||
'Status' : 'Stato',
|
||||
'Size' : 'Dimensione',
|
||||
'Add Files' : 'Aggiungi file',
|
||||
'Stop current upload' : 'Interrompi il caricamento',
|
||||
'Start uploading queue' : 'Avvia il caricamento',
|
||||
'Uploaded %d/%d files': 'Caricati %d/%d file',
|
||||
'N/A' : 'N/D',
|
||||
'Drag files here.' : 'Trascina i file qui.',
|
||||
'File extension error.': 'Errore estensione file.',
|
||||
'File size error.': 'Errore dimensione file.',
|
||||
'Init error.': 'Errore inizializzazione.',
|
||||
'HTTP Error.': 'Errore HTTP.',
|
||||
'Security error.': 'Errore sicurezza.',
|
||||
'Generic error.': 'Errore generico.',
|
||||
'IO error.': 'Errore IO.',
|
||||
'Stop Upload': 'Ferma Upload',
|
||||
'Start Upload': 'Inizia Upload',
|
||||
'%d files queued': '%d file in lista'
|
||||
});
|
||||
@ -1,37 +0,0 @@
|
||||
// Japanese
|
||||
plupload.addI18n({
|
||||
'Select files' : 'ファイル選択',
|
||||
'Add files to the upload queue and click the start button.' : 'ファイルをアップロードキューに追加してスタートボタンをクリックしてください',
|
||||
'Filename' : 'ファイル名',
|
||||
'Status' : 'ステータス',
|
||||
'Size' : 'サイズ',
|
||||
'Add Files' : 'ファイルを追加',
|
||||
'Stop Upload' : 'アップロード停止',
|
||||
'Start Upload' : 'アップロード',
|
||||
'Add files' : 'ファイルを追加',
|
||||
'Add files.' : 'ファイルを追加',
|
||||
'Stop current upload' : '現在のアップロードを停止',
|
||||
'Start uploading queue' : 'アップロード',
|
||||
'Stop upload' : 'アップロード停止',
|
||||
'Start upload' : 'アップロード',
|
||||
'Uploaded %d/%d files': 'アップロード中 %d/%d ファイル',
|
||||
'N/A' : 'N/A',
|
||||
'Drag files here.' : 'ここにファイルをドラッグ',
|
||||
'File extension error.': 'ファイル拡張子エラー',
|
||||
'File size error.': 'ファイルサイズエラー',
|
||||
'File count error.': 'ファイル数エラー',
|
||||
'Init error.': 'イニシャライズエラー',
|
||||
'HTTP Error.': 'HTTP エラー',
|
||||
'Security error.': 'セキュリティエラー',
|
||||
'Generic error.': 'エラー',
|
||||
'IO error.': 'IO エラー',
|
||||
'File: %s': 'ファイル: %s',
|
||||
'Close': '閉じる',
|
||||
'%d files queued': '%d ファイルが追加されました',
|
||||
'Using runtime: ': 'モード: ',
|
||||
'File: %f, size: %s, max file size: %m': 'ファイル: %f, サイズ: %s, 最大ファイルサイズ: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'アップロード可能なファイル数は %d です。余分なファイルは削除されました',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'アップロード先の URL が存在しません',
|
||||
'Error: File too large: ': 'エラー: サイズが大きすぎます: ',
|
||||
'Error: Invalid file extension: ': 'エラー: 拡張子が許可されていません: '
|
||||
});
|
||||
@ -1,36 +0,0 @@
|
||||
// Republic of Korea
|
||||
plupload.addI18n({
|
||||
'Select files' : '파일 선택',
|
||||
'Add files to the upload queue and click the start button.' : '파일을 업로드 큐에 추가하여 시작 버튼을 클릭하십시오.',
|
||||
'Filename' : '파일 이름',
|
||||
'Status' : '상태',
|
||||
'Size' : '크기',
|
||||
'Add Files' : '파일 추가',
|
||||
'Stop Upload': '업로드 중지',
|
||||
'Start Upload': '업로드',
|
||||
'Add files': '파일 추가',
|
||||
'Stop current upload': '현재 업로드를 정지',
|
||||
'Start uploading queue': '업로드',
|
||||
'Stop upload': '업로드 중지',
|
||||
'Start upload': '업로드',
|
||||
'Uploaded % d / % d files': '업로드 중 % d / % d 파일',
|
||||
'N / A': 'N / A',
|
||||
'Drag files here': '여기에 파일을 드래그',
|
||||
'File extension error': '파일 확장자 오류',
|
||||
'File size error': '파일 크기 오류',
|
||||
'File count error': '이미지 : 오류',
|
||||
'Init error': '초기화 오류',
|
||||
'HTTP Error': 'HTTP 오류',
|
||||
'Security error': '보안 오류',
|
||||
'Generic error': '오류',
|
||||
'IO error': 'IO 오류',
|
||||
'File : % s': '파일 % s',
|
||||
'Close': '닫기',
|
||||
'% d files queued': '% d 파일이 추가되었습니다',
|
||||
'Using runtime :': '모드',
|
||||
'File : % f, size : % s, max file size : % m': '파일 : % f, 크기 : % s, 최대 파일 크기 : % m',
|
||||
'Upload element accepts only % d file (s) at a time. Extra files were stripped': '업로드 가능한 파일의 수는 % d입니다. 불필요한 파일은 삭제되었습니다 ',
|
||||
'Upload URL might be wrong or doesn \'t exist ':'업로드할 URL이 존재하지 않습니다 ',
|
||||
'Error : File too large :': '오류 : 크기가 너무 큽니다',
|
||||
'Error : Invalid file extension :': '오류 : 확장자가 허용되지 않습니다 :'
|
||||
});
|
||||
@ -1,33 +0,0 @@
|
||||
// .lv file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Izvēlieties failus',
|
||||
'Add files to the upload queue and click the start button.' : 'Pieveinojiet failus rindai un klikšķiniet uz "Sākt augšupielādi" pogas.',
|
||||
'Filename' : 'Faila nosaukums',
|
||||
'Status' : 'Statuss',
|
||||
'Size' : 'Izmērs',
|
||||
'Add files' : 'Pievienot failus',
|
||||
'Stop current upload' : 'Apturēt pašreizējo augšupielādi',
|
||||
'Start uploading queue' : 'Sākt augšupielādi',
|
||||
'Drag files here.' : 'Ievelciet failus šeit',
|
||||
'Start upload' : 'Sākt augšupielādi',
|
||||
'Uploaded %d/%d files': 'Augšupielādēti %d/%d faili',
|
||||
'Stop upload': 'Pārtraukt augšupielādi',
|
||||
'Start upload': 'Sākt augšupielādi',
|
||||
'%d files queued': '%d faili pievienoti rindai',
|
||||
'File: %s': 'Fails: %s',
|
||||
'Close': 'Aizvērt',
|
||||
'Using runtime: ': 'Lieto saskarni: ',
|
||||
'File: %f, size: %s, max file size: %m': 'Fails: %f, izmērs: %s, maksimālais faila izmērs: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'Augšupielādes URL varētu būt nepareizs vai neeksistē',
|
||||
'Error: File too large: ': 'Kļūda: Fails pārāk liels: ',
|
||||
'Error: Invalid file extension: ': 'Kļūda: Nekorekts faila paplašinājums:',
|
||||
'File extension error.': 'Faila paplašinājuma kļūda.',
|
||||
'File size error.': 'Faila izmēra kļūda.',
|
||||
'File count error.': 'Failu skaita kļūda',
|
||||
'Init error.': 'Inicializācijas kļūda.',
|
||||
'HTTP Error.': 'HTTP kļūda.',
|
||||
'Security error.': 'Drošības kļūda.',
|
||||
'Generic error.': 'Vispārēja rakstura kļūda.',
|
||||
'IO error.': 'Ievades/Izvades kļūda.'
|
||||
});
|
||||
@ -1,21 +0,0 @@
|
||||
// Dutch
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Selecteer bestand(en):',
|
||||
'Add files to the upload queue and click the start button.' : 'Voeg bestanden toe aan de wachtrij en druk op \'Start\'.',
|
||||
'Filename' : 'Bestandsnaam',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Grootte',
|
||||
'Add files' : 'Voeg bestanden toe',
|
||||
'Stop current upload' : 'Stop upload',
|
||||
'Start uploading queue' : 'Start upload',
|
||||
'Uploaded %d/%d files': '%d/%d bestanden ge-upload',
|
||||
'N/A' : 'Niet beschikbaar',
|
||||
'Drag files here.' : 'Sleep bestanden hierheen.',
|
||||
'File extension error.': 'Ongeldig bestandstype.',
|
||||
'File size error.': 'Bestandsgrootte Error.',
|
||||
'Init error.': 'Initialisatie error.',
|
||||
'HTTP Error.': 'HTTP Error.',
|
||||
'Security error.': 'Beveiliging error.',
|
||||
'Generic error.': 'Onbekende error.',
|
||||
'IO error.': 'IO error.'
|
||||
});
|
||||
@ -1,24 +0,0 @@
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Wybierz pliki:',
|
||||
'Add files to the upload queue and click the start button.' : 'Dodaj pliki i kliknij \'Rozpocznij transfer\'.',
|
||||
'Filename' : 'Nazwa pliku',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Rozmiar',
|
||||
'Add files' : 'Dodaj pliki',
|
||||
'Stop current upload' : 'Przerwij aktualny transfer',
|
||||
'Start uploading queue' : 'Rozpocznij wysyłanie',
|
||||
'Uploaded %d/%d files': 'Wysłano %d/%d plików',
|
||||
'N/A' : 'Nie dostępne',
|
||||
'Drag files here.' : 'Przeciągnij tu pliki',
|
||||
'File extension error.': 'Nieobsługiwany format pliku.',
|
||||
'File size error.': 'Plik jest zbyt duży.',
|
||||
'Init error.': 'Błąd inicjalizacji.',
|
||||
'HTTP Error.': 'Błąd HTTP.',
|
||||
'Security error.': 'Błąd bezpieczeństwa.',
|
||||
'Generic error.': 'Błąd ogólny.',
|
||||
'IO error.': 'Błąd IO.',
|
||||
'Stop Upload': 'Przerwij transfer.',
|
||||
'Add Files': 'Dodaj pliki',
|
||||
'Start upload': 'Rozpocznij transfer.',
|
||||
'%d files queued': '%d plików w kolejce.'
|
||||
});
|
||||
@ -1,35 +0,0 @@
|
||||
// Brazilian Portuguese
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Escolha os arquivos',
|
||||
'Add files to the upload queue and click the start button.' : 'Adicione os arquivos abaixo e clique no botão "Iniciar o envio".',
|
||||
'Filename' : 'Nome do arquivo',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Tamanho',
|
||||
'Add Files' : 'Adicionar arquivo(s)',
|
||||
'Stop Upload' : 'Parar o envio',
|
||||
'Start Upload' : 'Iniciar o envio',
|
||||
'Add files' : 'Adicionar arquivo(s)',
|
||||
'Add files.' : 'Adicionar arquivo(s)',
|
||||
'Stop upload' : 'Parar o envio',
|
||||
'Start upload' : 'Iniciar o envio',
|
||||
'Uploaded %d/%d files': 'Enviado(s) %d/%d arquivo(s)',
|
||||
'N/A' : 'N/D',
|
||||
'Drag files here.' : 'Arraste os arquivos pra cá',
|
||||
'File extension error.': 'Tipo de arquivo não permitido.',
|
||||
'File size error.': 'Tamanho de arquivo não permitido.',
|
||||
'File count error.': 'Erro na contagem dos arquivos',
|
||||
'Init error.': 'Erro inicializando.',
|
||||
'HTTP Error.': 'Erro HTTP.',
|
||||
'Security error.': 'Erro de segurança.',
|
||||
'Generic error.': 'Erro genérico.',
|
||||
'IO error.': 'Erro de E/S.',
|
||||
'File: %s': 'Arquivo: %s',
|
||||
'Close': 'Fechar',
|
||||
'%d files queued': '%d arquivo(s)',
|
||||
'Using runtime: ': 'Usando: ',
|
||||
'File: %f, size: %s, max file size: %m': 'Arquivo: %f, tamanho: %s, máximo: %m',
|
||||
'Upload element accepts only %d file(s) at a time. Extra files were stripped.': 'Só são aceitos %d arquivos por vez. O que passou disso foi descartado.',
|
||||
'Upload URL might be wrong or doesn\'t exist': 'URL de envio está errada ou não existe',
|
||||
'Error: File too large: ': 'Erro: Arquivo muito grande: ',
|
||||
'Error: Invalid file extension: ': 'Erro: Tipo de arquivo não permitido: '
|
||||
});
|
||||
@ -1,24 +0,0 @@
|
||||
// Romanian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Selectare fişiere',
|
||||
'Add files to the upload queue and click the start button.' : 'Adaugă fişiere în lista apoi apasă butonul \'Începe încărcare\'.',
|
||||
'Filename' : 'Nume fişier',
|
||||
'Status' : 'Stare',
|
||||
'Size' : 'Mărime',
|
||||
'Add files' : 'Adăugare fişiere',
|
||||
'Stop current upload' : 'Întrerupe încărcarea curentă',
|
||||
'Start uploading queue' : 'Începe incărcarea',
|
||||
'Uploaded %d/%d files': 'Fişiere încărcate %d/%d',
|
||||
'N/A' : 'N/A',
|
||||
'Drag files here.' : 'Trage aici fişierele',
|
||||
'File extension error.': 'Extensie fişier eronată',
|
||||
'File size error.': 'Eroare dimensiune fişier',
|
||||
'Init error.': 'Eroare iniţializare',
|
||||
'HTTP Error.': 'Eroare HTTP',
|
||||
'Security error.': 'Eroare securitate',
|
||||
'Generic error.': 'Eroare generică',
|
||||
'IO error.': 'Eroare Intrare/Ieşire',
|
||||
'Stop Upload': 'Oprire încărcare',
|
||||
'Start upload': 'Începe încărcare',
|
||||
'%d files queued': '%d fişiere listate'
|
||||
});
|
||||
@ -1,21 +0,0 @@
|
||||
// Russian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Выберите файлы',
|
||||
'Add files to the upload queue and click the start button.' : 'Добавьте файлы в очередь и нажмите кнопку "Загрузить файлы".',
|
||||
'Filename' : 'Имя файла',
|
||||
'Status' : 'Статус',
|
||||
'Size' : 'Размер',
|
||||
'Add files' : 'Добавить файлы',
|
||||
'Stop current upload' : 'Остановить загрузку',
|
||||
'Start uploading queue' : 'Загрузить файлы',
|
||||
'Uploaded %d/%d files': 'Загружено %d/%d файлов',
|
||||
'N/A' : 'N/D',
|
||||
'Drag files here.' : 'Перетащите файлы сюда.',
|
||||
'File extension error.': 'Неправильное расширение файла.',
|
||||
'File size error.': 'Неправильный размер файла.',
|
||||
'Init error.': 'Ошибка инициализации.',
|
||||
'HTTP Error.': 'Ошибка HTTP.',
|
||||
'Security error.': 'Ошибка безопасности.',
|
||||
'Generic error.': 'Общая ошибка.',
|
||||
'IO error.': 'Ошибка ввода-вывода.'
|
||||
});
|
||||
@ -1,25 +0,0 @@
|
||||
// .po file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Vyberte súbory',
|
||||
'Add files to the upload queue and click the start button.' : 'Pridajte súbory do zoznamu a potom spustite nahrávanie.',
|
||||
'Filename' : 'Názov súboru',
|
||||
'Status' : 'Stav',
|
||||
'Size' : 'Veľkosť',
|
||||
'Add files' : 'Pridať súbory',
|
||||
'Stop current upload' : 'Zastaviť nahrávanie',
|
||||
'Start uploading queue' : 'Spustiť nahrávanie zoznamu',
|
||||
'Drag files here.' : 'Sem pretiahnite súbory.',
|
||||
'Start upload': 'Spustiť nahrávanie',
|
||||
'Uploaded %d/%d files': 'Nahraných %d/%d súborov',
|
||||
'Using runtime: ': 'K odoslaniu súborov sa použije rozhranie: ',
|
||||
'N/A' : 'N/A',
|
||||
'File extension error.': 'Chybný typ súboru.',
|
||||
'File size error.': 'Súbor je príliš veľký.',
|
||||
'Init error.': 'Chyba inicializácie.',
|
||||
'HTTP Error.': 'HTTP Chyba.',
|
||||
'Security error.': 'Bezpečnostná Chyba.',
|
||||
'Generic error.': 'Chyba.',
|
||||
'IO error.': 'IO Chyba',
|
||||
'Stop Upload': 'Zastaviť nahrávanie',
|
||||
'%d files queued': '%d súborov pridaných do zoznamu'
|
||||
});
|
||||
@ -1,14 +0,0 @@
|
||||
// Serbian
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Izaberite fajlove',
|
||||
'Add files to the upload queue and click the start button.' : 'Dodajte fajlove u listu i kliknite na dugme Start.',
|
||||
'Filename' : 'Naziv fajla',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Veličina',
|
||||
'Add Files' : 'Dodaj fajlove',
|
||||
'Stop current upload' : 'Zaustavi upload',
|
||||
'Start uploading queue' : 'Počni upload',
|
||||
'Drag files here.' : 'Prevucite fajlove ovde.',
|
||||
'Start Upload': 'Počni upload',
|
||||
'Uploaded %d/%d files': 'Snimljeno %d/%d fajlova'
|
||||
});
|
||||
@ -1,12 +0,0 @@
|
||||
// .po file like language pack
|
||||
plupload.addI18n({
|
||||
'Select files' : 'Välj filer',
|
||||
'Add files to the upload queue and click the start button.' : 'Lägg till filer till kön och tryck på start.',
|
||||
'Filename' : 'Filnamn',
|
||||
'Status' : 'Status',
|
||||
'Size' : 'Storlek',
|
||||
'Add files' : 'Lägg till filer',
|
||||
'Stop current upload' : 'Stoppa uppladdningen',
|
||||
'Start uploading queue' : 'Starta uppladdningen',
|
||||
'Drag files here.' : 'Dra filer hit'
|
||||
});
|
||||
@ -1,147 +0,0 @@
|
||||
/*
|
||||
Plupload
|
||||
------------------------------------------------------------------- */
|
||||
|
||||
.plupload_button {cursor: pointer;}
|
||||
|
||||
.plupload_wrapper {
|
||||
font: normal 11px Verdana,sans-serif;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plupload .plupload_container input {width: 98%;}
|
||||
.plupload .plupload_filelist_footer {border-width: 1px 0 0 0}
|
||||
.plupload .plupload_filelist_header {border-width: 0 0 1px 0}
|
||||
div.plupload .plupload_file {border-width: 0 0 1px 0}
|
||||
div.plupload div.plupload_header {border-width: 0 0 1px 0; position: relative;}
|
||||
|
||||
.plupload_file .ui-icon {
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.plupload_header_content {
|
||||
background-image: url('../img/plupload.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: 8px center;
|
||||
min-height: 56px;
|
||||
padding-left: 60px;
|
||||
position:relative;
|
||||
}
|
||||
.plupload_header_content_bw {background-image: url('../img/plupload-bw.png');}
|
||||
.plupload_header_title {
|
||||
font: normal 18px sans-serif;
|
||||
padding: 6px 0 3px;
|
||||
}
|
||||
.plupload_header_text {font: normal 12px sans-serif;}
|
||||
|
||||
.plupload_filelist,
|
||||
.plupload_filelist_content {
|
||||
border-collapse: collapse;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
-moz-user-select:none;
|
||||
-webkit-user-select:none;
|
||||
user-select:none;
|
||||
}
|
||||
|
||||
.plupload_cell {padding: 8px 6px;}
|
||||
|
||||
.plupload_file {
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.plupload .ui-sortable-helper,
|
||||
.plupload .ui-sortable .plupload_file {
|
||||
cursor:move;
|
||||
}
|
||||
|
||||
.plupload_scroll {
|
||||
max-height: 180px;
|
||||
min-height: 168px;
|
||||
_height: 168px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.plupload_file_size, .plupload_file_status {text-align: right;}
|
||||
.plupload_file_size, .plupload_file_status {width: 52px;}
|
||||
.plupload_file_action {width: 16px;}
|
||||
.plupload_file_name {
|
||||
overflow: hidden;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
.plupload_file_rename {
|
||||
width:95%;
|
||||
}
|
||||
|
||||
.plupload_progress {width: 60px;}
|
||||
.plupload_progress_container {padding: 1px;}
|
||||
|
||||
|
||||
/* Floats */
|
||||
|
||||
.plupload_right {float: right;}
|
||||
.plupload_left {float: left;}
|
||||
.plupload_clear,.plupload_clearer {clear: both;}
|
||||
.plupload_clearer, .plupload_progress_bar {
|
||||
display: block;
|
||||
font-size: 0;
|
||||
line-height: 0;
|
||||
}
|
||||
.plupload_clearer {height: 0;}
|
||||
|
||||
/* Misc */
|
||||
.plupload_hidden {display: none;}
|
||||
.plupload_droptext {
|
||||
background: transparent;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
border: 0;
|
||||
line-height: 165px;
|
||||
}
|
||||
|
||||
.plupload_buttons, .plupload_upload_status {float: left}
|
||||
|
||||
.plupload_message {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.plupload_message p {
|
||||
padding:0.7em;
|
||||
margin:0;
|
||||
}
|
||||
|
||||
.plupload_message strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
plupload_message i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.plupload_message p span.ui-icon {
|
||||
float: left;
|
||||
margin-right: 0.3em;
|
||||
}
|
||||
|
||||
.plupload_header_content .ui-state-error,
|
||||
.plupload_header_content .ui-state-highlight {
|
||||
border:none;
|
||||
}
|
||||
|
||||
.plupload_message_close {
|
||||
position:absolute;
|
||||
top:5px;
|
||||
right:5px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
.plupload .ui-sortable-placeholder {
|
||||
height:35px;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.6 KiB |
@ -1,754 +0,0 @@
|
||||
/**
|
||||
* jquery.ui.plupload.js
|
||||
*
|
||||
* Copyright 2009, Moxiecode Systems AB
|
||||
* Released under GPL License.
|
||||
*
|
||||
* License: http://www.plupload.com/license
|
||||
* Contributing: http://www.plupload.com/contributing
|
||||
*
|
||||
* Depends:
|
||||
* jquery.ui.core.js
|
||||
* jquery.ui.widget.js
|
||||
*
|
||||
* Optionally:
|
||||
* jquery.ui.button.js
|
||||
* jquery.ui.progressbar.js
|
||||
* jquery.ui.sortable.js
|
||||
*/
|
||||
|
||||
// JSLint defined globals
|
||||
/*global window:false, document:false, plupload:false, jQuery:false */
|
||||
|
||||
(function(window, document, plupload, $, undef) {
|
||||
|
||||
var uploaders = {};
|
||||
|
||||
function _(str) {
|
||||
return plupload.translate(str) || str;
|
||||
}
|
||||
|
||||
function renderUI(obj) {
|
||||
obj.html(
|
||||
'<div class="plupload_wrapper">' +
|
||||
'<div class="ui-widget-content plupload_container">' +
|
||||
'<div class="plupload">' +
|
||||
'<div class="ui-state-default ui-widget-header plupload_header">' +
|
||||
'<div class="plupload_header_content">' +
|
||||
'<div class="plupload_header_title">' + _('Select files') + '</div>' +
|
||||
'<div class="plupload_header_text">' + _('Add files to the upload queue and click the start button.') + '</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
|
||||
'<div class="plupload_content">' +
|
||||
'<table class="plupload_filelist">' +
|
||||
'<tr class="ui-widget-header plupload_filelist_header">' +
|
||||
'<td class="plupload_cell plupload_file_name">' + _('Filename') + '</td>' +
|
||||
'<td class="plupload_cell plupload_file_status">' + _('Status') + '</td>' +
|
||||
'<td class="plupload_cell plupload_file_size">' + _('Size') + '</td>' +
|
||||
'<td class="plupload_cell plupload_file_action"> </td>' +
|
||||
'</tr>' +
|
||||
'</table>' +
|
||||
|
||||
'<div class="plupload_scroll">' +
|
||||
'<table class="plupload_filelist_content"></table>' +
|
||||
'</div>' +
|
||||
|
||||
'<table class="plupload_filelist">' +
|
||||
'<tr class="ui-widget-header ui-widget-content plupload_filelist_footer">' +
|
||||
'<td class="plupload_cell plupload_file_name">' +
|
||||
|
||||
'<div class="plupload_buttons"><!-- Visible -->' +
|
||||
'<a class="plupload_button plupload_add">' + _('Add Files') + '</a> ' +
|
||||
'<a class="plupload_button plupload_start">' + _('Start Upload') + '</a> ' +
|
||||
'<a class="plupload_button plupload_stop plupload_hidden">'+_('Stop Upload') + '</a> ' +
|
||||
'</div>' +
|
||||
|
||||
'<div class="plupload_started plupload_hidden"><!-- Hidden -->' +
|
||||
|
||||
'<div class="plupload_progress plupload_right">' +
|
||||
'<div class="plupload_progress_container"></div>' +
|
||||
'</div>' +
|
||||
|
||||
'<div class="plupload_cell plupload_upload_status"></div>' +
|
||||
|
||||
'<div class="plupload_clearer"> </div>' +
|
||||
|
||||
'</div>' +
|
||||
'</td>' +
|
||||
'<td class="plupload_file_status"><span class="plupload_total_status">0%</span></td>' +
|
||||
'<td class="plupload_file_size"><span class="plupload_total_file_size">0 kb</span></td>' +
|
||||
'<td class="plupload_file_action"></td>' +
|
||||
'</tr>' +
|
||||
'</table>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<input class="plupload_count" value="0" type="hidden">' +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
$.widget("ui.plupload", {
|
||||
|
||||
contents_bak: '',
|
||||
|
||||
runtime: null,
|
||||
|
||||
options: {
|
||||
browse_button_hover: 'ui-state-hover',
|
||||
browse_button_active: 'ui-state-active',
|
||||
|
||||
// widget specific
|
||||
dragdrop : true,
|
||||
multiple_queues: true, // re-use widget by default
|
||||
|
||||
buttons: {
|
||||
browse: true,
|
||||
start: true,
|
||||
stop: true
|
||||
},
|
||||
autostart: false,
|
||||
sortable: false,
|
||||
rename: false,
|
||||
max_file_count: 0 // unlimited
|
||||
},
|
||||
|
||||
FILE_COUNT_ERROR: -9001,
|
||||
|
||||
_create: function() {
|
||||
var self = this, id, uploader;
|
||||
|
||||
id = this.element.attr('id');
|
||||
if (!id) {
|
||||
id = plupload.guid();
|
||||
this.element.attr('id', id);
|
||||
}
|
||||
this.id = id;
|
||||
|
||||
// backup the elements initial state
|
||||
this.contents_bak = this.element.html();
|
||||
renderUI(this.element);
|
||||
|
||||
// container, just in case
|
||||
this.container = $('.plupload_container', this.element).attr('id', id + '_container');
|
||||
|
||||
// list of files, may become sortable
|
||||
this.filelist = $('.plupload_filelist_content', this.container)
|
||||
.attr({
|
||||
id: id + '_filelist',
|
||||
unselectable: 'on'
|
||||
});
|
||||
|
||||
// buttons
|
||||
this.browse_button = $('.plupload_add', this.container).attr('id', id + '_browse');
|
||||
this.start_button = $('.plupload_start', this.container).attr('id', id + '_start');
|
||||
this.stop_button = $('.plupload_stop', this.container).attr('id', id + '_stop');
|
||||
|
||||
if ($.ui.button) {
|
||||
this.browse_button.button({
|
||||
icons: { primary: 'ui-icon-circle-plus' }
|
||||
});
|
||||
|
||||
this.start_button.button({
|
||||
icons: { primary: 'ui-icon-circle-arrow-e' },
|
||||
disabled: true
|
||||
});
|
||||
|
||||
this.stop_button.button({
|
||||
icons: { primary: 'ui-icon-circle-close' }
|
||||
});
|
||||
}
|
||||
|
||||
// progressbar
|
||||
this.progressbar = $('.plupload_progress_container', this.container);
|
||||
|
||||
if ($.ui.progressbar) {
|
||||
this.progressbar.progressbar();
|
||||
}
|
||||
|
||||
// counter
|
||||
this.counter = $('.plupload_count', this.element)
|
||||
.attr({
|
||||
id: id + '_count',
|
||||
name: id + '_count'
|
||||
});
|
||||
|
||||
// initialize uploader instance
|
||||
uploader = this.uploader = uploaders[id] = new plupload.Uploader($.extend({
|
||||
container: id ,
|
||||
browse_button: id + '_browse'
|
||||
}, this.options));
|
||||
|
||||
// do not show UI if no runtime can be initialized
|
||||
uploader.bind('Error', function(up, err) {
|
||||
if (err.code === plupload.INIT_ERROR) {
|
||||
self.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
uploader.bind('Init', function(up, res) {
|
||||
// all buttons are optional, so they can be disabled and hidden
|
||||
if (!self.options.buttons.browse) {
|
||||
self.browse_button.button('disable').hide();
|
||||
up.disableBrowse(true);
|
||||
}
|
||||
|
||||
if (!self.options.buttons.start) {
|
||||
self.start_button.button('disable').hide();
|
||||
}
|
||||
|
||||
if (!self.options.buttons.stop) {
|
||||
self.stop_button.button('disable').hide();
|
||||
}
|
||||
|
||||
if (!self.options.unique_names && self.options.rename) {
|
||||
self._enableRenaming();
|
||||
}
|
||||
|
||||
if (uploader.features.dragdrop && self.options.dragdrop) {
|
||||
self._enableDragAndDrop();
|
||||
}
|
||||
|
||||
self.container.attr('title', _('Using runtime: ') + (self.runtime = res.runtime));
|
||||
|
||||
self.start_button.click(function(e) {
|
||||
if (!$(this).button('option', 'disabled')) {
|
||||
self.start();
|
||||
}
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
self.stop_button.click(function(e) {
|
||||
self.stop();
|
||||
e.preventDefault();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// check if file count doesn't exceed the limit
|
||||
if (self.options.max_file_count) {
|
||||
uploader.bind('FilesAdded', function(up, selectedFiles) {
|
||||
var removed = [], selectedCount = selectedFiles.length;
|
||||
var extraCount = up.files.length + selectedCount - self.options.max_file_count;
|
||||
|
||||
if (extraCount > 0) {
|
||||
removed = selectedFiles.splice(selectedCount - extraCount, extraCount);
|
||||
|
||||
up.trigger('Error', {
|
||||
code : self.FILE_COUNT_ERROR,
|
||||
message : _('File count error.'),
|
||||
file : removed
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// uploader internal events must run first
|
||||
uploader.init();
|
||||
|
||||
uploader.bind('FilesAdded', function(up, files) {
|
||||
self._trigger('selected', null, { up: up, files: files } );
|
||||
|
||||
if (self.options.autostart) {
|
||||
// set a little delay to make sure that QueueChanged triggered by the core has time to complete
|
||||
setTimeout(function() {
|
||||
self.start();
|
||||
}, 10);
|
||||
}
|
||||
});
|
||||
|
||||
uploader.bind('FilesRemoved', function(up, files) {
|
||||
self._trigger('removed', null, { up: up, files: files } );
|
||||
});
|
||||
|
||||
uploader.bind('QueueChanged', function() {
|
||||
self._updateFileList();
|
||||
});
|
||||
|
||||
uploader.bind('StateChanged', function() {
|
||||
self._handleState();
|
||||
});
|
||||
|
||||
uploader.bind('UploadFile', function(up, file) {
|
||||
self._handleFileStatus(file);
|
||||
});
|
||||
|
||||
uploader.bind('FileUploaded', function(up, file) {
|
||||
self._handleFileStatus(file);
|
||||
|
||||
self._trigger('uploaded', null, { up: up, file: file } );
|
||||
});
|
||||
|
||||
uploader.bind('UploadProgress', function(up, file) {
|
||||
// Set file specific progress
|
||||
$('#' + file.id)
|
||||
.find('.plupload_file_status')
|
||||
.html(file.percent + '%')
|
||||
.end()
|
||||
.find('.plupload_file_size')
|
||||
.html(plupload.formatSize(file.size));
|
||||
|
||||
self._handleFileStatus(file);
|
||||
self._updateTotalProgress();
|
||||
|
||||
self._trigger('progress', null, { up: up, file: file } );
|
||||
});
|
||||
|
||||
uploader.bind('UploadComplete', function(up, files) {
|
||||
self._trigger('complete', null, { up: up, files: files } );
|
||||
});
|
||||
|
||||
uploader.bind('Error', function(up, err) {
|
||||
var file = err.file, message, details;
|
||||
|
||||
if (file) {
|
||||
message = '<strong>' + err.message + '</strong>';
|
||||
details = err.details;
|
||||
|
||||
if (details) {
|
||||
message += " <br /><i>" + err.details + "</i>";
|
||||
} else {
|
||||
|
||||
switch (err.code) {
|
||||
case plupload.FILE_EXTENSION_ERROR:
|
||||
details = _("File: %s").replace('%s', file.name);
|
||||
break;
|
||||
|
||||
case plupload.FILE_SIZE_ERROR:
|
||||
details = _("File: %f, size: %s, max file size: %m").replace(/%([fsm])/g, function($0, $1) {
|
||||
switch ($1) {
|
||||
case 'f': return file.name;
|
||||
case 's': return file.size;
|
||||
case 'm': return plupload.parseSize(self.options.max_file_size);
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case self.FILE_COUNT_ERROR:
|
||||
details = _("Upload element accepts only %d file(s) at a time. Extra files were stripped.")
|
||||
.replace('%d', self.options.max_file_count);
|
||||
break;
|
||||
|
||||
case plupload.IMAGE_FORMAT_ERROR :
|
||||
details = plupload.translate('Image format either wrong or not supported.');
|
||||
break;
|
||||
|
||||
case plupload.IMAGE_MEMORY_ERROR :
|
||||
details = plupload.translate('Runtime ran out of available memory.');
|
||||
break;
|
||||
|
||||
case plupload.IMAGE_DIMENSIONS_ERROR :
|
||||
details = plupload.translate('Resoultion out of boundaries! <b>%s</b> runtime supports images only up to %wx%hpx.').replace(/%([swh])/g, function($0, $1) {
|
||||
switch ($1) {
|
||||
case 's': return up.runtime;
|
||||
case 'w': return up.features.maxWidth;
|
||||
case 'h': return up.features.maxHeight;
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
case plupload.HTTP_ERROR:
|
||||
details = _("Upload URL might be wrong or doesn't exist");
|
||||
break;
|
||||
}
|
||||
message += " <br /><i>" + details + "</i>";
|
||||
}
|
||||
|
||||
self.notify('error', message);
|
||||
self._trigger('error', null, { up: up, file: file, error: message } );
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_setOption: function(key, value) {
|
||||
var self = this;
|
||||
|
||||
if (key == 'buttons' && typeof(value) == 'object') {
|
||||
value = $.extend(self.options.buttons, value);
|
||||
|
||||
if (!value.browse) {
|
||||
self.browse_button.button('disable').hide();
|
||||
up.disableBrowse(true);
|
||||
} else {
|
||||
self.browse_button.button('enable').show();
|
||||
up.disableBrowse(false);
|
||||
}
|
||||
|
||||
if (!value.start) {
|
||||
self.start_button.button('disable').hide();
|
||||
} else {
|
||||
self.start_button.button('enable').show();
|
||||
}
|
||||
|
||||
if (!value.stop) {
|
||||
self.stop_button.button('disable').hide();
|
||||
} else {
|
||||
self.start_button.button('enable').show();
|
||||
}
|
||||
}
|
||||
|
||||
self.uploader.settings[key] = value;
|
||||
},
|
||||
|
||||
|
||||
start: function() {
|
||||
this.uploader.start();
|
||||
this._trigger('start', null);
|
||||
},
|
||||
|
||||
stop: function() {
|
||||
this.uploader.stop();
|
||||
this._trigger('stop', null);
|
||||
},
|
||||
|
||||
getFile: function(id) {
|
||||
var file;
|
||||
|
||||
if (typeof id === 'number') {
|
||||
file = this.uploader.files[id];
|
||||
} else {
|
||||
file = this.uploader.getFile(id);
|
||||
}
|
||||
return file;
|
||||
},
|
||||
|
||||
removeFile: function(id) {
|
||||
var file = this.getFile(id);
|
||||
if (file) {
|
||||
this.uploader.removeFile(file);
|
||||
}
|
||||
},
|
||||
|
||||
clearQueue: function() {
|
||||
this.uploader.splice();
|
||||
},
|
||||
|
||||
getUploader: function() {
|
||||
return this.uploader;
|
||||
},
|
||||
|
||||
refresh: function() {
|
||||
this.uploader.refresh();
|
||||
},
|
||||
|
||||
|
||||
_handleState: function() {
|
||||
var self = this, up = this.uploader;
|
||||
|
||||
if (up.state === plupload.STARTED) {
|
||||
|
||||
$(self.start_button).button('disable');
|
||||
|
||||
$([])
|
||||
.add(self.stop_button)
|
||||
.add('.plupload_started')
|
||||
.removeClass('plupload_hidden');
|
||||
|
||||
$('.plupload_upload_status', self.element).html(
|
||||
_('Uploaded %d/%d files').replace('%d/%d', up.total.uploaded+'/'+up.files.length)
|
||||
);
|
||||
|
||||
$('.plupload_header_content', self.element).addClass('plupload_header_content_bw');
|
||||
|
||||
} else {
|
||||
|
||||
$([])
|
||||
.add(self.stop_button)
|
||||
.add('.plupload_started')
|
||||
.addClass('plupload_hidden');
|
||||
|
||||
if (self.options.multiple_queues) {
|
||||
$(self.start_button).button('enable');
|
||||
|
||||
$('.plupload_header_content', self.element).removeClass('plupload_header_content_bw');
|
||||
}
|
||||
|
||||
self._updateFileList();
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
_handleFileStatus: function(file) {
|
||||
var actionClass, iconClass;
|
||||
|
||||
// since this method might be called asynchronously, file row might not yet be rendered
|
||||
if (!$('#' + file.id).length) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (file.status) {
|
||||
case plupload.DONE:
|
||||
actionClass = 'plupload_done';
|
||||
iconClass = 'ui-icon ui-icon-circle-check';
|
||||
break;
|
||||
|
||||
case plupload.FAILED:
|
||||
actionClass = 'ui-state-error plupload_failed';
|
||||
iconClass = 'ui-icon ui-icon-alert';
|
||||
break;
|
||||
|
||||
case plupload.QUEUED:
|
||||
actionClass = 'plupload_delete';
|
||||
iconClass = 'ui-icon ui-icon-circle-minus';
|
||||
break;
|
||||
|
||||
case plupload.UPLOADING:
|
||||
actionClass = 'ui-state-highlight plupload_uploading';
|
||||
iconClass = 'ui-icon ui-icon-circle-arrow-w';
|
||||
|
||||
// scroll uploading file into the view if its bottom boundary is out of it
|
||||
var scroller = $('.plupload_scroll', this.container),
|
||||
scrollTop = scroller.scrollTop(),
|
||||
scrollerHeight = scroller.height(),
|
||||
rowOffset = $('#' + file.id).position().top + $('#' + file.id).height();
|
||||
|
||||
if (scrollerHeight < rowOffset) {
|
||||
scroller.scrollTop(scrollTop + rowOffset - scrollerHeight);
|
||||
}
|
||||
break;
|
||||
}
|
||||
actionClass += ' ui-state-default plupload_file';
|
||||
|
||||
$('#' + file.id)
|
||||
.attr('class', actionClass)
|
||||
.find('.ui-icon')
|
||||
.attr('class', iconClass);
|
||||
},
|
||||
|
||||
|
||||
_updateTotalProgress: function() {
|
||||
var up = this.uploader;
|
||||
|
||||
this.progressbar.progressbar('value', up.total.percent);
|
||||
|
||||
this.element
|
||||
.find('.plupload_total_status')
|
||||
.html(up.total.percent + '%')
|
||||
.end()
|
||||
.find('.plupload_total_file_size')
|
||||
.html(plupload.formatSize(up.total.size))
|
||||
.end()
|
||||
.find('.plupload_upload_status')
|
||||
.html(_('Uploaded %d/%d files').replace('%d/%d', up.total.uploaded+'/'+up.files.length));
|
||||
},
|
||||
|
||||
|
||||
_updateFileList: function() {
|
||||
var self = this, up = this.uploader, filelist = this.filelist,
|
||||
count = 0,
|
||||
id, prefix = this.id + '_',
|
||||
fields;
|
||||
|
||||
// destroy sortable if enabled
|
||||
if ($.ui.sortable && this.options.sortable) {
|
||||
$('tbody.ui-sortable', filelist).sortable('destroy');
|
||||
}
|
||||
|
||||
filelist.empty();
|
||||
|
||||
$.each(up.files, function(i, file) {
|
||||
fields = '';
|
||||
id = prefix + count;
|
||||
|
||||
if (file.status === plupload.DONE) {
|
||||
if (file.target_name) {
|
||||
fields += '<input type="hidden" name="' + id + '_tmpname" value="'+plupload.xmlEncode(file.target_name)+'" />';
|
||||
}
|
||||
fields += '<input type="hidden" name="' + id + '_name" value="'+plupload.xmlEncode(file.name)+'" />';
|
||||
fields += '<input type="hidden" name="' + id + '_status" value="' + (file.status === plupload.DONE ? 'done' : 'failed') + '" />';
|
||||
|
||||
count++;
|
||||
self.counter.val(count);
|
||||
}
|
||||
|
||||
filelist.append(
|
||||
'<tr class="ui-state-default plupload_file" id="' + file.id + '">' +
|
||||
'<td class="plupload_cell plupload_file_name"><span>' + file.name + '</span></td>' +
|
||||
'<td class="plupload_cell plupload_file_status">' + file.percent + '%</td>' +
|
||||
'<td class="plupload_cell plupload_file_size">' + plupload.formatSize(file.size) + '</td>' +
|
||||
'<td class="plupload_cell plupload_file_action"><div class="ui-icon"></div>' + fields + '</td>' +
|
||||
'</tr>'
|
||||
);
|
||||
|
||||
self._handleFileStatus(file);
|
||||
|
||||
$('#' + file.id + '.plupload_delete .ui-icon, #' + file.id + '.plupload_done .ui-icon')
|
||||
.click(function(e) {
|
||||
$('#' + file.id).remove();
|
||||
up.removeFile(file);
|
||||
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
self._trigger('updatelist', null, filelist);
|
||||
});
|
||||
|
||||
if (up.total.queued === 0) {
|
||||
$('.ui-button-text', self.browse_button).html(_('Add Files'));
|
||||
} else {
|
||||
$('.ui-button-text', self.browse_button).html(_('%d files queued').replace('%d', up.total.queued));
|
||||
}
|
||||
|
||||
|
||||
if (up.files.length === (up.total.uploaded + up.total.failed)) {
|
||||
self.start_button.button('disable');
|
||||
} else {
|
||||
self.start_button.button('enable');
|
||||
}
|
||||
|
||||
|
||||
// Scroll to end of file list
|
||||
filelist[0].scrollTop = filelist[0].scrollHeight;
|
||||
|
||||
self._updateTotalProgress();
|
||||
|
||||
if (!up.files.length && up.features.dragdrop && up.settings.dragdrop) {
|
||||
// Re-add drag message if there are no files
|
||||
$('#' + id + '_filelist').append('<tr><td class="plupload_droptext">' + _("Drag files here.") + '</td></tr>');
|
||||
} else {
|
||||
// Otherwise re-initialize sortable
|
||||
if (self.options.sortable && $.ui.sortable) {
|
||||
self._enableSortingList();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
_enableRenaming: function() {
|
||||
var self = this;
|
||||
|
||||
this.filelist.on('click', '.plupload_delete .plupload_file_name span', function(e) {
|
||||
var targetSpan = $(e.target), file, parts, name, ext = "";
|
||||
|
||||
// Get file name and split out name and extension
|
||||
file = self.uploader.getFile(targetSpan.parents('tr')[0].id);
|
||||
name = file.name;
|
||||
parts = /^(.+)(\.[^.]+)$/.exec(name);
|
||||
if (parts) {
|
||||
name = parts[1];
|
||||
ext = parts[2];
|
||||
}
|
||||
|
||||
// Display input element
|
||||
targetSpan.hide().after('<input class="plupload_file_rename" type="text" />');
|
||||
targetSpan.next().val(name).focus().blur(function() {
|
||||
targetSpan.show().next().remove();
|
||||
}).keydown(function(e) {
|
||||
var targetInput = $(this);
|
||||
|
||||
if ($.inArray(e.keyCode, [13, 27]) !== -1) {
|
||||
e.preventDefault();
|
||||
|
||||
// Rename file and glue extension back on
|
||||
if (e.keyCode === 13) {
|
||||
file.name = targetInput.val() + ext;
|
||||
targetSpan.html(file.name);
|
||||
}
|
||||
targetInput.blur();
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
_enableDragAndDrop: function() {
|
||||
this.filelist.append('<tr><td class="plupload_droptext">' + _("Drag files here.") + '</td></tr>');
|
||||
|
||||
this.filelist.parent().attr('id', this.id + '_dropbox');
|
||||
|
||||
this.uploader.settings.drop_element = this.options.drop_element = this.id + '_dropbox';
|
||||
},
|
||||
|
||||
|
||||
_enableSortingList: function() {
|
||||
var idxStart, self = this;
|
||||
|
||||
if ($('tbody tr', this.filelist).length < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
$('tbody', this.filelist).sortable({
|
||||
containment: 'parent',
|
||||
items: '.plupload_delete',
|
||||
|
||||
helper: function(e, el) {
|
||||
return el.clone(true).find('td:not(.plupload_file_name)').remove().end().css('width', '100%');
|
||||
},
|
||||
|
||||
stop: function(e, ui) {
|
||||
var i, length, idx, files = [];
|
||||
|
||||
$.each($(this).sortable('toArray'), function(i, id) {
|
||||
files[files.length] = self.uploader.getFile(id);
|
||||
});
|
||||
|
||||
files.unshift(files.length);
|
||||
files.unshift(0);
|
||||
|
||||
// re-populate files array
|
||||
Array.prototype.splice.apply(self.uploader.files, files);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
notify: function(type, message) {
|
||||
var popup = $(
|
||||
'<div class="plupload_message">' +
|
||||
'<span class="plupload_message_close ui-icon ui-icon-circle-close" title="'+_('Close')+'"></span>' +
|
||||
'<p><span class="ui-icon"></span>' + message + '</p>' +
|
||||
'</div>'
|
||||
);
|
||||
|
||||
popup
|
||||
.addClass('ui-state-' + (type === 'error' ? 'error' : 'highlight'))
|
||||
.find('p .ui-icon')
|
||||
.addClass('ui-icon-' + (type === 'error' ? 'alert' : 'info'))
|
||||
.end()
|
||||
.find('.plupload_message_close')
|
||||
.click(function() {
|
||||
popup.remove();
|
||||
})
|
||||
.end();
|
||||
|
||||
$('.plupload_header_content', this.container).append(popup);
|
||||
},
|
||||
|
||||
|
||||
|
||||
destroy: function() {
|
||||
// unbind all button events
|
||||
$('.plupload_button', this.element).unbind();
|
||||
|
||||
// destroy buttons
|
||||
if ($.ui.button) {
|
||||
$('.plupload_add, .plupload_start, .plupload_stop', this.container)
|
||||
.button('destroy');
|
||||
}
|
||||
|
||||
// destroy progressbar
|
||||
if ($.ui.progressbar) {
|
||||
this.progressbar.progressbar('destroy');
|
||||
}
|
||||
|
||||
// destroy sortable behavior
|
||||
if ($.ui.sortable && this.options.sortable) {
|
||||
$('tbody', this.filelist).sortable('destroy');
|
||||
}
|
||||
|
||||
// destroy uploader instance
|
||||
this.uploader.destroy();
|
||||
|
||||
// restore the elements initial state
|
||||
this.element
|
||||
.empty()
|
||||
.html(this.contents_bak);
|
||||
this.contents_bak = '';
|
||||
|
||||
$.Widget.prototype.destroy.apply(this);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
} (window, document, plupload, jQuery));
|
||||
BIN
assets/javascripts/plupload/js/Moxie.swf
Normal file
BIN
assets/javascripts/plupload/js/Moxie.swf
Normal file
Binary file not shown.
BIN
assets/javascripts/plupload/js/Moxie.xap
Normal file
BIN
assets/javascripts/plupload/js/Moxie.xap
Normal file
Binary file not shown.
2
assets/javascripts/plupload/js/i18n/ar.js
Normal file
2
assets/javascripts/plupload/js/i18n/ar.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Arabic (ar)
|
||||
plupload.addI18n({"Stop Upload":"أيقاف التحميل","Upload URL might be wrong or doesn't exist.":"عنوان التحميل ربما يكون خاطئ أو غير متوفر","tb":"تيرابايت","Size":"الحجم","Close":"أغلاق","Init error.":"خطأ في تهيئة","Add files to the upload queue and click the start button.":"أضف ملفات إلى القائمة إنتظار التحميل ثم أضغط على زر البداية","Filename":"أسم الملف","Image format either wrong or not supported.":"صيغة الصورة أما خطاء أو غير مدعومه","Status":"الحالة","HTTP Error.":"خطأ في برتوكول نقل الملفات","Start Upload":"أبدا التحميل","mb":"ميجابايت","kb":"كيلوبايت","Duplicate file error.":"خطاء في تكرار الملف","File size error.":"خطأ في حجم الملف","N/A":"لا شي","gb":"جيجابايت","Error: Invalid file extension:":"خطاء : أمتداد الملف غير صالح :","Select files":"أختر الملفات","%s already present in the queue.":"%s الملف موجود بالفعل في قائمة الانتظار","File: %s":"ملف: %s","b":"بايت","Uploaded %d/%d files":"تحميل %d/%d ملف","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"العناصر المقبوله لتحميل هي %d ملف في هذا الوقت. الملفات الاضافية أزيلة.","%d files queued":"%d الملفات في قائمة الانتظار","File: %s, size: %d, max file size: %d":"ملف: %s, أقصى حجم للملف: %d, حجم: %d","Drag files here.":"سحب الملف هنا","Runtime ran out of available memory.":"الذاكرة المتوفره أنتهت لمدة التشغيل","File count error.":"خطاء في عد الملفات","File extension error.":"خطأ في أمتداد الملف","Error: File too large:":" خطاء : حجم الملف كبير :","Add Files":"أضف ملفات"});
|
||||
2
assets/javascripts/plupload/js/i18n/az.js
Normal file
2
assets/javascripts/plupload/js/i18n/az.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Azerbaijani (az)
|
||||
plupload.addI18n({"Stop Upload":"Yükləməni saxla","Upload URL might be wrong or doesn't exist.":"Yükləmə ünvanı səhvdir və ya mövcud deyil","tb":"tb","Size":"Həcm","Close":"Bağla","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Faylları əlavə edin və yüklə düyməsinə klikləyin.","Filename":"Faylın adı","Image format either wrong or not supported.":"Şəklin formatı uyğun deyil və ya dəstəklənmir.","Status":"Status","HTTP Error.":"HTTP xətası.","Start Upload":"Yüklə","mb":"mb","kb":"kb","Duplicate file error.":"Bu fayl artıq növbədə var.","File size error.":"Fayl həcmi xətası.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Xəta: Yanlış fayl uzantısı:","Select files":"Faylları seçin","%s already present in the queue.":"%s artıq növbədə var.","File: %s":"Fayl: %s","b":"b","Uploaded %d/%d files":"%d/%d fayl yüklənib","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"Növbədə %d fayl var","File: %s, size: %d, max file size: %d":"Fayl: %s, həcm: %d, max fayl həcmi: %d","Drag files here.":"Faylları bura çəkin.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Fayl sayı çox böyükdür.","File extension error.":"Fayl uzantısı xətası.","Error: File too large:":"Xəta:Fayl həcmi çox böyükdür.","Add Files":"Fayl əlavə et"});
|
||||
2
assets/javascripts/plupload/js/i18n/be_BY.js
Normal file
2
assets/javascripts/plupload/js/i18n/be_BY.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Belarusian (Belarus) (be_BY)
|
||||
plupload.addI18n({"Stop Upload":"","Upload URL might be wrong or doesn't exist.":"","tb":"","Size":"","Close":"","Init error.":"","Add files to the upload queue and click the start button.":"","Filename":"","Image format either wrong or not supported.":"","Status":"","HTTP Error.":"","Start Upload":"","mb":"","kb":"","Duplicate file error.":"","File size error.":"","N/A":"","gb":"","Error: Invalid file extension:":"","Select files":"","%s already present in the queue.":"","File: %s":"","b":"","Uploaded %d/%d files":"","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"","%d files queued":"","File: %s, size: %d, max file size: %d":"","Drag files here.":"","Runtime ran out of available memory.":"","File count error.":"","File extension error.":"","Error: File too large:":"","Add Files":""});
|
||||
2
assets/javascripts/plupload/js/i18n/bg.js
Normal file
2
assets/javascripts/plupload/js/i18n/bg.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Bulgarian (bg)
|
||||
plupload.addI18n({"Stop Upload":"Спрете качването","Upload URL might be wrong or doesn't exist.":"URL за качване може да е грешен или да не съществува.","tb":"tb","Size":"Размер","Close":"Затвори","Init error.":"Грешка: инициализиране.","Add files to the upload queue and click the start button.":"Добавете файлове в опашката за качване, и щракнете бутона старт.","Filename":"Име на файла","Image format either wrong or not supported.":"Формата на изображението или е объркан, или не се поддържа.","Status":"Статус","HTTP Error.":"Грешка: HTTP .","Start Upload":"Започнете качването","mb":"mb","kb":"kb","Duplicate file error.":"Грешка: файла е вече качен на сървъра.","File size error.":"Грешка: размер на файла.","N/A":"не приложимо","gb":"gb","Error: Invalid file extension:":"Грешка: Невалидно разширение на файл:","Select files":"Изберете файлове","%s already present in the queue.":"%s вече го има в опашката.","File: %s":"Файл: %s","b":"b","Uploaded %d/%d files":"Качени %d/%d файла","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Елемента за качване приема само %d файл(а) наведнъж. Допълнителните файлове бяха отстранени.","%d files queued":"%d файла в опашката","File: %s, size: %d, max file size: %d":"Файл: %s, размер: %d, максимален размер: %d","Drag files here.":"Довлечете файловете тук.","Runtime ran out of available memory.":"Недостатъчна свободна памет.","File count error.":"Грешка в броя на файловете.","File extension error.":"Грешка: разширение на файла.","Error: File too large:":"Грешка: Файла е твърде голям:","Add Files":"Добавете файлове"});
|
||||
2
assets/javascripts/plupload/js/i18n/bs.js
Normal file
2
assets/javascripts/plupload/js/i18n/bs.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Bosnian (bs)
|
||||
plupload.addI18n({"Stop Upload":"Prekini dodavanje","Upload URL might be wrong or doesn't exist.":"URL za dodavanje je neispravan ili ne postoji.","tb":"tb","Size":"Veličina","Close":"Zatvori","Init error.":"Inicijalizacijska greška.","Add files to the upload queue and click the start button.":"Dodajte datoteke u red i kliknite na dugme za pokretanje.","Filename":"Naziv datoteke","Image format either wrong or not supported.":"Format slike je neispravan ili nije podržan.","Status":"Status","HTTP Error.":"HTTP greška.","Start Upload":"Započni dodavanje","mb":"mb","kb":"kb","Duplicate file error.":"Dupla datoteka.","File size error.":"Greška u veličini datoteke.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Greška! Neispravan ekstenzija datoteke:","Select files":"Odaberite datoteke","%s already present in the queue.":"%s se već nalazi u redu.","File: %s":"Datoteka: %s","b":"b","Uploaded %d/%d files":"Dodano %d/%d datoteka","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Dodavanje trenutno dozvoljava samo %d datoteka istovremeno. Dodatne datoteke su uklonjene.","%d files queued":"%d datoteka čeka","File: %s, size: %d, max file size: %d":"Datoteka: %s, veličina: %d, maksimalna veličina: %d","Drag files here.":"Dovucite datoteke ovdje.","Runtime ran out of available memory.":"Nema više dostupne memorije.","File count error.":"Greška u brojanju datoeka.","File extension error.":"Greška u ekstenziji datoteke.","Error: File too large:":"Greška! Datoteka je prevelika:","Add Files":"Dodaj datoteke"});
|
||||
2
assets/javascripts/plupload/js/i18n/ca.js
Normal file
2
assets/javascripts/plupload/js/i18n/ca.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Catalan (ca)
|
||||
plupload.addI18n({"Stop Upload":"Parar pujada","Upload URL might be wrong or doesn't exist.":"La URL de càrrega no és correcte o bé no existeix.","tb":"Tb","Size":"Tamany","Close":"Tancar","Init error.":"Error d´inicialització.","Add files to the upload queue and click the start button.":"Afegeixi els fitxers a la cua de pujada i cliqui el botó Iniciar","Filename":"Nom de fitxer","Image format either wrong or not supported.":"Format d'imatge incorrecte o no suportat.","Status":"Estat","HTTP Error.":"Error HTTP.","Start Upload":"Començar pujada","mb":"Mb","kb":"Kb","Duplicate file error.":"Error per duplicitat de fitxer.","File size error.":"Error en la mida del fitxer.","N/A":"N/D","gb":"Gb","Error: Invalid file extension:":"Error: Extensió de fitxer no vàlida:","Select files":"Seleccionar fitxers","%s already present in the queue.":"%s ja existeix a la cua.","File: %s":"Fitxer: %s","b":"b","Uploaded %d/%d files":"Pujats %d/%d fitxers","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"La càrrega d'elements tan sols accepta %d fitxer(s) alhora. Els fitxers sobrants seran descartats.","%d files queued":"%d fitxers en cua","File: %s, size: %d, max file size: %d":"Fitxer: %s, mida: %d, mida màxima de fitxer: %d","Drag files here.":"Arrossegui fitxers aquí","Runtime ran out of available memory.":"L'execució ha arribat al límit de memòria.","File count error.":"Error en el recompte de fitxers","File extension error.":"Error en l´extensió del fitxer.","Error: File too large:":"Error: Fitxer massa gran:","Add Files":"Afegir fitxers"});
|
||||
2
assets/javascripts/plupload/js/i18n/cs.js
Normal file
2
assets/javascripts/plupload/js/i18n/cs.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Czech (cs)
|
||||
plupload.addI18n({"Stop Upload":"Zastavit nahrávání","Upload URL might be wrong or doesn't exist.":"URL uploadu je možná špatně, nebo neexistuje.","tb":"tb","Size":"Velikost","Close":"Zavřít","Init error.":"Chyba inicializace.","Add files to the upload queue and click the start button.":"Přidejte soubory do fronty a pak spusťte nahrávání.","Filename":"Název souboru","Image format either wrong or not supported.":"Špatný, nebo nepodporovaný formát obrázku.","Status":"Stav","HTTP Error.":"Chyba HTTP.","Start Upload":"Spustit nahrávání","mb":"mb","kb":"kb","Duplicate file error.":"Chyba - duplikovaný soubor.","File size error.":"Chyba velikosti souboru.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Chyba: Neplatná koncovka souboru:","Select files":"Vyberte soubory","%s already present in the queue.":"%s je již zařazen ve frontě.","File: %s":"Soubor: %s","b":"b","Uploaded %d/%d files":"Nahráno %d/%d souborů","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload akceptuje pouze %d soubor(ů) najednou. Další soubory byly odstraněny.","%d files queued":"%d souborů ve frontě","File: %s, size: %d, max file size: %d":"Soubor: %s, velikost: %d, maximální velikost souboru: %d","Drag files here.":"Sem přetáhněte soubory.","Runtime ran out of available memory.":"Běh skriptu přesáhl dostupnou paměť.","File count error.":"Chyba v počtu souborů.","File extension error.":"Chyba přípony souboru.","Error: File too large:":"Chyba: Soubor je příliš veliký:","Add Files":"Přidat soubory"});
|
||||
2
assets/javascripts/plupload/js/i18n/cy.js
Normal file
2
assets/javascripts/plupload/js/i18n/cy.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Welsh (cy)
|
||||
plupload.addI18n({"Stop Upload":"Atal Lanlwytho","Upload URL might be wrong or doesn't exist.":"URL y lanlwythiad ynb anghywir neu ddim yn bodoli.","tb":"tb","Size":"Maint","Close":"Cau","Init error.":"Gwall cych.","Add files to the upload queue and click the start button.":"Ychwanegwch ffeiliau i'r ciw lanlwytho a chlicio'r botwm dechrau.","Filename":"Enw'r ffeil","Image format either wrong or not supported.":"Fformat delwedd yn anghywir neu heb ei gynnal.","Status":"Statws","HTTP Error.":"Gwall HTTP.","Start Upload":"Dechrau Lanlwytho","mb":"mb","kb":"kb","Duplicate file error.":"Gwall ffeil ddyblyg.","File size error.":"Gwall maint ffeil.","N/A":"Dd/A","gb":"gb","Error: Invalid file extension:":"Gwall: estyniad ffeil annilys:","Select files":"Dewis ffeiliau","%s already present in the queue.":"%s yn y ciw yn barod.","File: %s":"Ffeil: %s","b":"b","Uploaded %d/%d files":"Lanlwythwyd %d/%d ffeil","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Mae'r elfen lanlwytho yn derbyn %d ffeil ar y tro. Caiff ffeiliau ychwanegol eu tynnu.","%d files queued":"%d ffeil mewn ciw","File: %s, size: %d, max file size: %d":"Ffeil: %s, maint: %d, maint mwyaf ffeil: %d","Drag files here.":"Llusgwch ffeiliau yma.","Runtime ran out of available memory.":"Allan o gof.","File count error.":"Gwall cyfri ffeiliau.","File extension error.":"Gwall estyniad ffeil.","Error: File too large:":"Gwall: Ffeil yn rhy fawr:","Add Files":"Ychwanegu Ffeiliau"});
|
||||
2
assets/javascripts/plupload/js/i18n/da.js
Normal file
2
assets/javascripts/plupload/js/i18n/da.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Danish (da)
|
||||
plupload.addI18n({"Stop Upload":"Stop upload","Upload URL might be wrong or doesn't exist.":"Upload URL kan være forkert eller ikke eksisterende.","tb":"tb","Size":"Størrelse","Close":"Luk","Init error.":"Opstarts fejl.","Add files to the upload queue and click the start button.":"Tilføj filer til køen og klik Start upload knappen.","Filename":"Filnavn","Image format either wrong or not supported.":"Billede format er enten forkert eller ikke understøttet.","Status":"Status","HTTP Error.":"HTTP fejl.","Start Upload":"Start upload","mb":"mb","kb":"kb","Duplicate file error.":"Filen findes allerede.","File size error.":"Filstørrelse fejl.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Fejl: Ugyldigt fil format:","Select files":"Vælg filer","%s already present in the queue.":"%s findes allerede i køen.","File: %s":"Fil: %s","b":"b","Uploaded %d/%d files":"Uploaded %d/%d filer","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload accepterer kun %d fil(er) af gangen. Ekstra filer blev skippet.","%d files queued":"%d filer i kø","File: %s, size: %d, max file size: %d":"Fil: %s, størrelse: %d, maks. filstørrelse: %d","Drag files here.":"Træk filer her.","Runtime ran out of available memory.":"Runtime mangler tilgængelige hukommelse.","File count error.":"Fil antal fejl.","File extension error.":"Fil format fejl.","Error: File too large:":"Fejl: Filen er for stor:","Add Files":"Tilføj filer"});
|
||||
2
assets/javascripts/plupload/js/i18n/de.js
Normal file
2
assets/javascripts/plupload/js/i18n/de.js
Normal file
@ -0,0 +1,2 @@
|
||||
// German (de)
|
||||
plupload.addI18n({"Stop Upload":"Hochladen stoppen","Upload URL might be wrong or doesn't exist.":"Upload-URL ist falsch oder existiert nicht.","tb":"TB","Size":"Größe","Close":"Schließen","Init error.":"Initialisierungsfehler","Add files to the upload queue and click the start button.":"Dateien hinzufügen und auf 'Hochladen' klicken.","Filename":"Dateiname","Image format either wrong or not supported.":"Bildformat falsch oder nicht unterstützt.","Status":"Status","HTTP Error.":"HTTP-Fehler","Start Upload":"Hochladen beginnen","mb":"MB","kb":"KB","Duplicate file error.":"Datei bereits hochgeladen","File size error.":"Fehler bei Dateigröße","N/A":"Nicht verfügbar","gb":"GB","Error: Invalid file extension:":"Fehler: Ungültige Dateiendung:","Select files":"Dateien auswählen","%s already present in the queue.":"%s ist bereits in der Warteschlange","File: %s":"Datei: %s","b":"B","Uploaded %d/%d files":"%d/%d Dateien wurden hochgeladen","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Pro Durchgang können nur %d Datei(en) akzeptiert werden. Überzählige Dateien wurden ignoriert.","%d files queued":"%d Dateien in der Warteschlange","File: %s, size: %d, max file size: %d":"Datei: %s, Größe: %d, maximale Dateigröße: %d","Drag files here.":"Dateien hier hin ziehen.","Runtime ran out of available memory.":"Nicht genügend Speicher verfügbar.","File count error.":"Fehlerhafte Dateianzahl.","File extension error.":"Fehler bei Dateiendung","Error: File too large:":"Fehler: Datei zu groß:","Add Files":"Dateien hinzufügen"});
|
||||
2
assets/javascripts/plupload/js/i18n/el.js
Normal file
2
assets/javascripts/plupload/js/i18n/el.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Greek (el)
|
||||
plupload.addI18n({"Stop Upload":"Ακύρωση Μεταφόρτωσης","Upload URL might be wrong or doesn't exist.":"Το URL μεταφόρτωσης είναι λάθος ή δεν υπάρχει.","tb":"tb","Size":"Μέγεθος","Close":"Κλείσιμο","Init error.":"Σφάλμα αρχικοποίησης.","Add files to the upload queue and click the start button.":"Προσθέστε αρχεία στην ουρά μεταφόρτωσης και πατήστε το κουμπί εκκίνησης.","Filename":"Όνομα Αρχείου","Image format either wrong or not supported.":"Ο τύπος εικόνας είναι λάθος ή δεν υποστηρίζεται.","Status":"Κατάσταση","HTTP Error.":"Σφάλμα HTTP.","Start Upload":"Εκκίνηση Μεταφόρτωσης","mb":"mb","kb":"kb","Duplicate file error.":"Το αρχείο έχει ξαναπροστεθεί.","File size error.":"Σφάλμα με το μέγεθος του αρχείου.","N/A":"Δεν ισχύει","gb":"gb","Error: Invalid file extension:":"Σφάλμα: Μη έγκυρος τύπος αρχείου:","Select files":"Επιλέξτε Αρχεία","%s already present in the queue.":"Το «%s» βρίσκεται ήδη στην ουρά.","File: %s":"Αρχείο: %s","b":"b","Uploaded %d/%d files":"Μεταφορτώθηκαν %d/%d αρχεία","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Μπορείτε να μεταφορτώσετε μεχρι και %d αρχείο/α κάθε φορά. Τα επιπλέον αρχεία αφαιρέθηκαν.","%d files queued":"%d αρχεία στην ουρά","File: %s, size: %d, max file size: %d":"Αρχείο: %s, μέγεθος: %d, μέγιστο μέγεθος αρχείου: %d","Drag files here.":"Σύρετε αρχεία εδώ","Runtime ran out of available memory.":"Δεν υπάρχει αρκετή διαθέσιμη μνήμη.","File count error.":"Σφάλμα με τον αριθμό αρχείων.","File extension error.":"Σφάλμα με τον τύπο αρχείου.","Error: File too large:":"Σφάλμα: Πολύ μεγάλο αρχείο:","Add Files":"Προσθέστε Αρχεία"});
|
||||
2
assets/javascripts/plupload/js/i18n/en.js
Normal file
2
assets/javascripts/plupload/js/i18n/en.js
Normal file
@ -0,0 +1,2 @@
|
||||
// English (en)
|
||||
plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Size","Close":"Close","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Add files to the upload queue and click the start button.","Filename":"Filename","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Start Upload","mb":"mb","kb":"kb","Duplicate file error.":"Duplicate file error.","File size error.":"File size error.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Select files","%s already present in the queue.":"%s already present in the queue.","File: %s":"File: %s","b":"b","Uploaded %d/%d files":"Uploaded %d/%d files","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d files queued","File: %s, size: %d, max file size: %d":"File: %s, size: %d, max file size: %d","Drag files here.":"Drag files here.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"File count error.","File extension error.":"File extension error.","Error: File too large:":"Error: File too large:","Add Files":"Add Files"});
|
||||
2
assets/javascripts/plupload/js/i18n/es.js
Normal file
2
assets/javascripts/plupload/js/i18n/es.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Spanish (es)
|
||||
plupload.addI18n({"Stop Upload":"Detener Subida.","Upload URL might be wrong or doesn't exist.":"URL de carga inexistente.","tb":"TB","Size":"Tamaño","Close":"Cerrar","Init error.":"Error de inicialización.","Add files to the upload queue and click the start button.":"Agregue archivos a la lista de subida y pulse clic en el botón de Iniciar carga","Filename":"Nombre de archivo","Image format either wrong or not supported.":"Formato de imagen no soportada.","Status":"Estado","HTTP Error.":"Error de HTTP.","Start Upload":"Iniciar carga","mb":"MB","kb":"KB","Duplicate file error.":"Error, archivo duplicado","File size error.":"Error de tamaño de archivo.","N/A":"No disponible","gb":"GB","Error: Invalid file extension:":"Error: Extensión de archivo inválida:","Select files":"Elija archivos","%s already present in the queue.":"%s ya se encuentra en la lista.","File: %s":"Archivo: %s","b":"B","Uploaded %d/%d files":"Subidos %d/%d archivos","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Se aceptan sólo %d archivo(s) al tiempo. Más, no se tienen en cuenta.","%d files queued":"%d archivos en cola.","File: %s, size: %d, max file size: %d":"Archivo: %s, tamaño: %d, tamaño máximo de archivo: %d","Drag files here.":"Arrastre archivos aquí","Runtime ran out of available memory.":"No hay memoria disponible.","File count error.":"Error en contador de archivos.","File extension error.":"Error de extensión de archivo.","Error: File too large:":"Error: archivo demasiado grande:","Add Files":"Agregar archivos"});
|
||||
2
assets/javascripts/plupload/js/i18n/et.js
Normal file
2
assets/javascripts/plupload/js/i18n/et.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Estonian (et)
|
||||
plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Üleslaadimise URL võib olla vale või seda pole.","tb":"","Size":"Suurus","Close":"Sulge","Init error.":"Lähtestamise viga.","Add files to the upload queue and click the start button.":"Lisa failid üleslaadimise järjekorda ja klõpsa alustamise nupule.","Filename":"Failinimi","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Olek","HTTP Error.":"HTTP ühenduse viga.","Start Upload":"Start Upload","mb":"","kb":"","Duplicate file error.":"","File size error.":"Failisuuruse viga.","N/A":"N/A","gb":"","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Vali faile","%s already present in the queue.":"","File: %s":"Fail: %s","b":"","Uploaded %d/%d files":"Üles laaditud %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Üleslaadimise element saab vastu võtta ainult %d faili ühe korraga. Ülejäänud failid jäetakse laadimata.","%d files queued":"Järjekorras on %d faili","File: %s, size: %d, max file size: %d":"","Drag files here.":"Lohista failid siia.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Failide arvu viga.","File extension error.":"Faililaiendi viga.","Error: File too large:":"Error: File too large:","Add Files":"Add Files"});
|
||||
2
assets/javascripts/plupload/js/i18n/fa.js
Normal file
2
assets/javascripts/plupload/js/i18n/fa.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Persian (fa)
|
||||
plupload.addI18n({"Stop Upload":"توقف انتقال","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"ترابایت","Size":"سایز","Close":"بستن","Init error.":"خطا در استارت اسکریپت","Add files to the upload queue and click the start button.":"اضافه کنید فایل ها را به صف آپلود و دکمه شروع را کلیک کنید.","Filename":"نام فایل","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"وضعیت","HTTP Error.":"HTTP خطای","Start Upload":"شروع انتقال","mb":"مگابایت","kb":"کیلوبایت","Duplicate file error.":"خطای فایل تکراری","File size error.":"خطای سایز فایل","N/A":"N/A","gb":"گیگابایت","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"انتخاب فایل","%s already present in the queue.":"%s در لیست آپلود وجود دارد.","File: %s":" فایل ها : %s","b":"بایت","Uploaded %d/%d files":"منتقل شد %d/%d از فایلها","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"عنصر بارگذار فقط %d فایل رو در یک زمان می پذیرد. سایر فایل ها مجرد از این موضوع هستند.","%d files queued":"%d فایل در صف","File: %s, size: %d, max file size: %d":"فایل: %s, اندازه: %d, محدودیت اندازه فایل: %d","Drag files here.":"بکشید فایل ها رو به اینجا","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"خطای تعداد فایل","File extension error.":"خطا پیشوند فایل","Error: File too large:":"Error: File too large:","Add Files":"افزودن فایل"});
|
||||
2
assets/javascripts/plupload/js/i18n/fi.js
Normal file
2
assets/javascripts/plupload/js/i18n/fi.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Finnish (fi)
|
||||
plupload.addI18n({"Stop Upload":"Pysäytä lähetys","Upload URL might be wrong or doesn't exist.":"Lähetyksen URL-osoite saattaa olla väärä tai sitä ei ole olemassa.","tb":"TB","Size":"Koko","Close":"Sulje","Init error.":"Init virhe.","Add files to the upload queue and click the start button.":"Lisää tiedostoja lähetysjonoon ja klikkaa aloita-nappia.","Filename":"Tiedostonimi","Image format either wrong or not supported.":"Kuvaformaatti on joko väärä tai ei tuettu.","Status":"Tila","HTTP Error.":"HTTP-virhe.","Start Upload":"Aloita lähetys","mb":"MB","kb":"kB","Duplicate file error.":"Tuplatiedostovirhe.","File size error.":"Tiedostokokovirhe.","N/A":"N/A","gb":"GB","Error: Invalid file extension:":"Virhe: Virheellinen tiedostopääte:","Select files":"Valitse tiedostoja","%s already present in the queue.":"%s on jo jonossa.","File: %s":"Tiedosto: %s","b":"B","Uploaded %d/%d files":"Lähetetty %d/%d tiedostoa","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Vain %d tiedosto(a) voidaan lähettää kerralla. Ylimääräiset tiedostot ohitettiin.","%d files queued":"%d tiedostoa jonossa","File: %s, size: %d, max file size: %d":"Tiedosto: %s, koko: %d, suurin sallittu tiedostokoko: %d","Drag files here.":"Raahaa tiedostot tähän.","Runtime ran out of available memory.":"Toiminnon käytettävissä oleva muisti loppui kesken.","File count error.":"Tiedostolaskentavirhe.","File extension error.":"Tiedostopäätevirhe.","Error: File too large:":"Virhe: Liian suuri tiedosto:","Add Files":"Lisää tiedostoja"});
|
||||
2
assets/javascripts/plupload/js/i18n/fr.js
Normal file
2
assets/javascripts/plupload/js/i18n/fr.js
Normal file
@ -0,0 +1,2 @@
|
||||
// French (fr)
|
||||
plupload.addI18n({"Stop Upload":"Arrêter l'envoi.","Upload URL might be wrong or doesn't exist.":"L'URL d'envoi est soit erronée soit n'existe pas.","tb":"To","Size":"Taille","Close":"Fermer","Init error.":"Erreur d'initialisation.","Add files to the upload queue and click the start button.":"Ajoutez des fichiers à la file d'attente de téléchargement et appuyez sur le bouton 'Démarrer l'envoi'","Filename":"Nom du fichier","Image format either wrong or not supported.":"Le format d'image est soit erroné soit pas géré.","Status":"État","HTTP Error.":"Erreur HTTP.","Start Upload":"Démarrer l'envoi","mb":"Mo","kb":"Ko","Duplicate file error.":"Erreur: Fichier déjà sélectionné.","File size error.":"Erreur de taille de fichier.","N/A":"Non applicable","gb":"Go","Error: Invalid file extension:":"Erreur: Extension de fichier non valide:","Select files":"Sélectionnez les fichiers","%s already present in the queue.":"%s déjà présent dans la file d'attente.","File: %s":"Fichier: %s","b":"o","Uploaded %d/%d files":"%d fichiers sur %d ont été envoyés","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Que %d fichier(s) peuvent être envoyé(s) à la fois. Les fichiers supplémentaires ont été ignorés.","%d files queued":"%d fichiers en attente","File: %s, size: %d, max file size: %d":"Fichier: %s, taille: %d, taille max. d'un fichier: %d","Drag files here.":"Déposez les fichiers ici.","Runtime ran out of available memory.":"Le traitement a manqué de mémoire disponible.","File count error.":"Erreur: Nombre de fichiers.","File extension error.":"Erreur d'extension de fichier","Error: File too large:":"Erreur: Fichier trop volumineux:","Add Files":"Ajouter des fichiers"});
|
||||
2
assets/javascripts/plupload/js/i18n/he.js
Normal file
2
assets/javascripts/plupload/js/i18n/he.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Hebrew (he)
|
||||
plupload.addI18n({"Stop Upload":"בטל העלאה","Upload URL might be wrong or doesn't exist.":"כתובת URL שגויה או לא קיימת.","tb":"tb","Size":"גודל","Close":"סגור","Init error.":"שגיאת איתחול","Add files to the upload queue and click the start button.":"הוסף קבצים לרשימה ולחץ על כפתור שליחה להתחלת פעולות העלאה","Filename":"שם קובץ","Image format either wrong or not supported.":"תמונה פגומה או סוג תמונה לא נתמך","Status":"אחוז","HTTP Error.":"שגיאת פרוטוקול","Start Upload":"שליחה","mb":"MB","kb":"KB","Duplicate file error.":"קובץ כפול","File size error.":"גודל קובץ חורג מהמותר","N/A":"שגיאה","gb":"GB","Error: Invalid file extension:":"שגיאה: סוג קובץ לא נתמך:","Select files":"בחר קבצים","%s already present in the queue.":"%sקובץ נמצא כבר ברשימת הקבצים.","File: %s":"קובץ: %s","b":"B","Uploaded %d/%d files":"מעלה: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"אלמנטי ההעלאה מקבלים רק %d קובץ(ים) בפעם אחת. קבצים נוספים הוסרו.","%d files queued":"%d קבצים נותרו","File: %s, size: %d, max file size: %d":"קובץ: %s, גודל: %d, גודל מקסימלי: %d","Drag files here.":"גרור קבצים לכאן","Runtime ran out of available memory.":"שגיאת מחסור בזיכרון","File count error.":"שגיאת מספר קבצים","File extension error.":"קובץ זה לא נתמך","Error: File too large:":"שגיאה: קובץ חורג מהגודל המותר:","Add Files":"הוסף קבצים"});
|
||||
2
assets/javascripts/plupload/js/i18n/hr.js
Normal file
2
assets/javascripts/plupload/js/i18n/hr.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Croatian (hr)
|
||||
plupload.addI18n({"Stop Upload":"Zaustavi upload.","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Veličina","Close":"Zatvori","Init error.":"Greška inicijalizacije.","Add files to the upload queue and click the start button.":"Dodajte datoteke u listu i kliknite Upload.","Filename":"Ime datoteke","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP greška.","Start Upload":"Pokreni upload.","mb":"mb","kb":"kb","Duplicate file error.":"Pogreška dvostruke datoteke.","File size error.":"Greška veličine datoteke.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Pogreška: Nevažeći nastavak datoteke:","Select files":"Odaberite datoteke:","%s already present in the queue.":"%s je već prisutan u listi čekanja.","File: %s":"Datoteka: %s","b":"b","Uploaded %d/%d files":"Uploadano %d/%d datoteka","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d datoteka na čekanju.","File: %s, size: %d, max file size: %d":"Datoteka: %s, veličina: %d, maksimalna veličina: %d","Drag files here.":"Dovucite datoteke ovdje","Runtime ran out of available memory.":"Runtime aplikaciji je ponestalo memorije.","File count error.":"Pogreška u broju datoteka.","File extension error.":"Pogreška u nastavku datoteke.","Error: File too large:":"Pogreška: Datoteka je prevelika:","Add Files":"Dodaj datoteke"});
|
||||
2
assets/javascripts/plupload/js/i18n/hu.js
Normal file
2
assets/javascripts/plupload/js/i18n/hu.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Hungarian (hu)
|
||||
plupload.addI18n({"Stop Upload":"Feltöltés leállítása","Upload URL might be wrong or doesn't exist.":"A feltöltő URL hibás vagy nem létezik.","tb":"TB","Size":"Méret","Close":"Bezárás","Init error.":"Init hiba.","Add files to the upload queue and click the start button.":"A fájlok feltöltési sorhoz való hozzáadása után az Indítás gombra kell kattintani.","Filename":"Fájlnév","Image format either wrong or not supported.":"Rossz vagy nem támogatott képformátum.","Status":"Állapot","HTTP Error.":"HTTP-hiba.","Start Upload":"Feltöltés indítása","mb":"MB","kb":"kB","Duplicate file error.":"Duplikáltfájl-hiba.","File size error.":"Hibás fájlméret.","N/A":"Nem elérhető","gb":"GB","Error: Invalid file extension:":"Hiba: érvénytelen fájlkiterjesztés:","Select files":"Fájlok kiválasztása","%s already present in the queue.":"%s már szerepel a listában.","File: %s":"Fájl: %s","b":"b","Uploaded %d/%d files":"Feltöltött fájlok: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"A feltöltés egyszerre csak %d fájlt fogad el, a többi fájl nem lesz feltöltve.","%d files queued":"%d fájl sorbaállítva","File: %s, size: %d, max file size: %d":"Fájl: %s, méret: %d, legnagyobb fájlméret: %d","Drag files here.":"Ide lehet húzni a fájlokat.","Runtime ran out of available memory.":"Futásidőben elfogyott a rendelkezésre álló memória.","File count error.":"A fájlok számával kapcsolatos hiba.","File extension error.":"Hibás fájlkiterjesztés.","Error: File too large:":"Hiba: a fájl túl nagy:","Add Files":"Fájlok hozzáadása"});
|
||||
2
assets/javascripts/plupload/js/i18n/hy.js
Normal file
2
assets/javascripts/plupload/js/i18n/hy.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Armenian (hy)
|
||||
plupload.addI18n({"Stop Upload":"Կանգնեցնել","Upload URL might be wrong or doesn't exist.":"Ավեցաված URL-ը սխալ է կամ գոյություն չունի։","tb":"տբ","Size":"Չափ","Close":"Փակել","Init error.":"Ստեղծման սխալ","Add files to the upload queue and click the start button.":"Ավելացրեք ֆայլեր ցուցակում և սեղմեք \"Վերբեռնել\"։","Filename":"Ֆայլի անուն","Image format either wrong or not supported.":"Նկարի ֆորմատը սխալ է կամ չի ընդունվում։","Status":"Կարգավիճակ","HTTP Error.":"HTTP սխալ","Start Upload":"Վերբեռնել","mb":"մբ","kb":"կբ","Duplicate file error.":"Ֆայլի կրկնման սխալ","File size error.":"Ֆայլի չափի սխալ","N/A":"N/A","gb":"գբ","Error: Invalid file extension:":"Սխալ։ Ֆայլի ընդլայնումը սխալ է։","Select files":"Ընտրեք ֆայլերը","%s already present in the queue.":"%s ֆայլը արդեն ավելացված է ցուցակում.","File: %s":"Ֆայլ: %s","b":"բ","Uploaded %d/%d files":"Վերբեռնվել են %d/%d ֆայլերը","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Վերբեռնիչը միանգամից ըդունում է միայն %d ֆայլ(եր). Ավելորդ ֆայլերը հեռացվել են.","%d files queued":"ցուցակում կա %d ֆայլ","File: %s, size: %d, max file size: %d":"Ֆայլ: %s, չափ: %d, ֆայլի մաքսիմում չափ: %d","Drag files here.":"Տեղափոխեք ֆայլերը այստեղ","Runtime ran out of available memory.":"Օպերատիվ հիշողության անբավարարուտյուն.","File count error.":"Ֆայլերի քանակի սխալ","File extension error.":"Ֆայլի ընդլայնման սխալ","Error: File too large:":"Սխալ։ Ֆայլի չափը մեծ է։","Add Files":"Ավելացնել ֆայլեր"});
|
||||
2
assets/javascripts/plupload/js/i18n/id.js
Normal file
2
assets/javascripts/plupload/js/i18n/id.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Indonesian (id)
|
||||
plupload.addI18n({"Stop Upload":"Hentikan Upload","Upload URL might be wrong or doesn't exist.":"Alamat URL untuk upload tidak benar atau tidak ada","tb":"tb","Size":"Ukuran","Close":"Tutup","Init error.":"Kesalahan pada Init","Add files to the upload queue and click the start button.":"Tambahkan file kedalam antrian upload dan klik tombol Mulai","Filename":"Nama File","Image format either wrong or not supported.":"Kesalahan pada jenis gambar atau jenis file tidak didukung","Status":"Status","HTTP Error.":"HTTP Bermasalah","Start Upload":"Mulai Upload","mb":"mb","kb":"kb","Duplicate file error.":"Terjadi duplikasi file","File size error.":"Kesalahan pada ukuran file","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Kesalahan: Ekstensi file tidak dikenal","Select files":"Pilih file","%s already present in the queue.":"%s sudah ada dalam daftar antrian","File: %s":"File: %s","b":"b","Uploaded %d/%d files":"File terupload %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Tempat untuk upload hanya menerima %d file(s) dalam setiap upload. File lainnya tidak akan disertakan","%d files queued":"%d file dalam antrian","File: %s, size: %d, max file size: %d":"File: %s, ukuran: %d, maksimum ukuran file: %d","Drag files here.":"Tarik file kesini","Runtime ran out of available memory.":"Tidak cukup memori","File count error.":"Kesalahan pada jumlah file","File extension error.":"Kesalahan pada ekstensi file","Error: File too large:":"Kesalahan: File terlalu besar","Add Files":"Tambah File"});
|
||||
2
assets/javascripts/plupload/js/i18n/it.js
Normal file
2
assets/javascripts/plupload/js/i18n/it.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Italian (it)
|
||||
plupload.addI18n({"Stop Upload":"Ferma Upload","Upload URL might be wrong or doesn't exist.":"URL di Upload errata o non esistente","tb":"tb","Size":"Dimensione","Close":"Chiudi","Init error.":"Errore inizializzazione.","Add files to the upload queue and click the start button.":"Aggiungi i file alla coda di caricamento e clicca il pulsante di avvio.","Filename":"Nome file","Image format either wrong or not supported.":"Formato immagine errato o non supportato.","Status":"Stato","HTTP Error.":"Errore HTTP.","Start Upload":"Inizia Upload","mb":"mb","kb":"kb","Duplicate file error.":"Errore file duplicato.","File size error.":"Errore dimensione file.","N/A":"N/D","gb":"gb","Error: Invalid file extension:":"Errore: Estensione file non valida:","Select files":"Seleziona i files","%s already present in the queue.":"%s già presente nella coda.","File: %s":"File: %s","b":"byte","Uploaded %d/%d files":"Caricati %d/%d file","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d file in coda","File: %s, size: %d, max file size: %d":"File: %s, dimensione: %d, dimensione max file: %d","Drag files here.":"Trascina i files qui.","Runtime ran out of available memory.":"Runtime ha esaurito la memoria disponibile.","File count error.":"File count error.","File extension error.":"Errore estensione file.","Error: File too large:":"Errore: File troppo grande:","Add Files":"Aggiungi file"});
|
||||
2
assets/javascripts/plupload/js/i18n/ja.js
Normal file
2
assets/javascripts/plupload/js/i18n/ja.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Japanese (ja)
|
||||
plupload.addI18n({"Stop Upload":"アップロード停止","Upload URL might be wrong or doesn't exist.":"アップロード先の URL が存在しません","tb":"TB","Size":"サイズ","Close":"閉じる","Init error.":"イニシャライズエラー","Add files to the upload queue and click the start button.":"ファイルをアップロードキューに追加してスタートボタンをクリックしてください","Filename":"ファイル名","Image format either wrong or not supported.":"画像形式が間違っているかサポートされていません","Status":"ステータス","HTTP Error.":"HTTP エラー","Start Upload":"アップロード開始","mb":"MB","kb":"KB","Duplicate file error.":"重複ファイルエラー","File size error.":"ファイルサイズエラー","N/A":"N/A","gb":"GB","Error: Invalid file extension:":"エラー: ファイルの拡張子が無効です:","Select files":"ファイル選択","%s already present in the queue.":"%s 既にキューに存在しています","File: %s":"ファイル: %s","b":"B","Uploaded %d/%d files":"アップロード中 %d/%d ファイル","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"アップロード可能なファイル数は %d です 余分なファイルは削除されました","%d files queued":"%d ファイルが追加されました","File: %s, size: %d, max file size: %d":"ファイル: %s, サイズ: %d, 最大ファイルサイズ: %d","Drag files here.":"ここにファイルをドラッグ","Runtime ran out of available memory.":"ランタイムが使用するメモリが不足しました","File count error.":"ファイル数エラー","File extension error.":"ファイル拡張子エラー","Error: File too large:":"エラー: ファイルが大きすぎます:","Add Files":"ファイルを追加"});
|
||||
2
assets/javascripts/plupload/js/i18n/ka.js
Normal file
2
assets/javascripts/plupload/js/i18n/ka.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Georgian (ka)
|
||||
plupload.addI18n({"Stop Upload":"ატვირთვის შეჩერება","Upload URL might be wrong or doesn't exist.":"ატვირთვის მისამართი არასწორია ან არ არსებობს.","tb":"ტბ","Size":"ზომა","Close":"დავხუროთ","Init error.":"ინიციალიზაციის შეცდომა.","Add files to the upload queue and click the start button.":"დაამატეთ ფაილები და დააჭირეთ ღილაკს - ატვირთვა.","Filename":"ფაილის სახელი","Image format either wrong or not supported.":"ფაილის ფორმატი არ არის მხარდაჭერილი ან არასწორია.","Status":"სტატუსი","HTTP Error.":"HTTP შეცდომა.","Start Upload":"ატვირთვა","mb":"მბ","kb":"კბ","Duplicate file error.":"ესეთი ფაილი უკვე დამატებულია.","File size error.":"ფაილის ზომა დაშვებულზე დიდია.","N/A":"N/A","gb":"გბ","Error: Invalid file extension:":"შეცდომა: ფაილს აქვს არასწორი გაფართოება.","Select files":"ფაილების მონიშვნა","%s already present in the queue.":"%s უკვე დამატებულია.","File: %s":"ფაილი: %s","b":"ბ","Uploaded %d/%d files":"ატვირთულია %d/%d ფაილი","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"ერთდროულად დაშვებულია მხოლოდ %d ფაილის დამატება.","%d files queued":"რიგშია %d ფაილი","File: %s, size: %d, max file size: %d":"ფაილი: %s, ზომა: %d, მაქსიმალური დაშვებული ზომა: %d","Drag files here.":"ჩააგდეთ ფაილები აქ.","Runtime ran out of available memory.":"ხელმისაწვდომი მეხსიერება გადაივსო.","File count error.":"აღმოჩენილია ზედმეტი ფაილები.","File extension error.":"ფაილის ფორმატი დაშვებული არ არის.","Error: File too large:":"შეცდომა: ფაილი ზედმეტად დიდია.","Add Files":"დაამატეთ ფაილები"});
|
||||
2
assets/javascripts/plupload/js/i18n/kk.js
Normal file
2
assets/javascripts/plupload/js/i18n/kk.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Kazakh (kk)
|
||||
plupload.addI18n({"Stop Upload":"Жүктеуді тоқтату","Upload URL might be wrong or doesn't exist.":"Жүктеуді қабылдаушы URL қате не мүлдем көрсетілмеген.","tb":"тб","Size":"Өлшемі","Close":"Жабу","Init error.":"Инициализация қатесі.","Add files to the upload queue and click the start button.":"Жүктеу кезегіне файлдар қосып, Бастау кнопкасын басыңыз.","Filename":"Файл аты","Image format either wrong or not supported.":"Сурет форматы қате немесе оның қолдауы жоқ.","Status":"Күйі","HTTP Error.":"HTTP қатесі.","Start Upload":"Жүктеуді бастау","mb":"мб","kb":"кб","Duplicate file error.":"Файл қайталамасының қатесі.","File size error.":"Файл өлшемінің қатесі.","N/A":"Қ/Ж","gb":"гб","Error: Invalid file extension:":"Қате: Файл кеңейтілуі қате:","Select files":"Файлдар таңдаңыз","%s already present in the queue.":"%s файлы кезекте бұрыннан бар.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Жүктелген: %d/%d файл","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Жүктеу элементі бір кезде %d файл ғана жүктей алады. Артық файлдар жүктелмейді.","%d files queued":"%d файл кезекке қойылды","File: %s, size: %d, max file size: %d":"Файл: %s, өлшемі: %d, макс. файл өлшемі: %d","Drag files here.":"Файлдарды мына жерге тастаңыз.","Runtime ran out of available memory.":"Орындау кезінде жады жетпей қалды.","File count error.":"Файл санының қатесі.","File extension error.":"Файл кеңейтілуінің қатесі.","Error: File too large:":"Қате: Файл мөлшері тым үлкен:","Add Files":"Файл қосу"});
|
||||
2
assets/javascripts/plupload/js/i18n/km.js
Normal file
2
assets/javascripts/plupload/js/i18n/km.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Khmer (km)
|
||||
plupload.addI18n({"Stop Upload":"បញ្ឈប់ការផ្ទុកឡើង","Upload URL might be wrong or doesn't exist.":"URL ផ្ទុកឡើងអាចខុស ឬក៏គ្មាន។","tb":"tb","Size":"ទំហំ","Close":"បិទ","Init error.":"កំហុស Init។","Add files to the upload queue and click the start button.":"បន្ថែមឯកសារទៅក្នុងជួរលំដាប់ផ្ទុកឡើង ហើយចុចប៊ូតុងចាប់ផ្ដើម។","Filename":"ឈ្មោះឯកសារ","Image format either wrong or not supported.":"ទ្រង់ទ្រាយរូបភាពអាចខុស ឬក៏មិនស្គាល់តែម្ដង។","Status":"ស្ថានភាព","HTTP Error.":"កំហុស HTTP ។","Start Upload":"ចាប់ផ្ដើមផ្ទុកឡើង","mb":"mb","kb":"kb","Duplicate file error.":"កំហុសឯកសារស្ទួនគ្នា។","File size error.":"កំហុសទំហំឯកសារ។","N/A":"គ្មាន","gb":"gb","Error: Invalid file extension:":"កំហុស៖ កន្ទុយឯកសារមិនត្រឹមត្រូវ៖","Select files":"ជ្រើសឯកសារ","%s already present in the queue.":"មាន %s នៅក្នុងជួរលំដាប់ហើយ។","File: %s":"ឯកសារ៖ %s","b":"b","Uploaded %d/%d files":"បានផ្ទុកឡើងឯកសារ %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"ការផ្ទុកឡើងទទួលឯកសារបានតែ %d ប៉ុណ្ណោះក្នុងពេលតែមួយ។ ឯកសារផ្សេងទៀតនឹងត្រូវដកចេញ។","%d files queued":"បានដាក់ឯកសារ %d បន្តគ្នា","File: %s, size: %d, max file size: %d":"ឯកសារ៖ %s, size: %d, ទំហំឯកសារអតិបរមា៖ %d","Drag files here.":"អូសឯកសារមកទីនេះ។","Runtime ran out of available memory.":"ពេលដំណើរការអស់អង្គចងចាំទំនេរហើយ។","File count error.":"កំហុសការរាប់ឯកសារ។","File extension error.":"កំហុសកន្ទុយឯកសារ។","Error: File too large:":"កំហុស៖ ឯកសារធំពេក៖","Add Files":"បន្ថែមឯកសារ"});
|
||||
2
assets/javascripts/plupload/js/i18n/ko.js
Normal file
2
assets/javascripts/plupload/js/i18n/ko.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Korean (ko)
|
||||
plupload.addI18n({"Stop Upload":"업로드 중지","Upload URL might be wrong or doesn't exist.":"업로드할 URL이 존재하지 않습니다.","tb":"tb","Size":"크기","Close":"닫기","Init error.":"초기화 오류.","Add files to the upload queue and click the start button.":"파일을 업로드 큐에 추가한 후 시작 버튼을 클릭하십시오.","Filename":"파일명","Image format either wrong or not supported.":"지원되지 않는 이미지 형식입니다.","Status":"상태","HTTP Error.":"HTTP 오류.","Start Upload":"업로드 시작","mb":"mb","kb":"kb","Duplicate file error.":"파일 중복 오류.","File size error.":"파일 크기 오류.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"오류: 허용되지 않은 확장자입니다.","Select files":"파일 선택","%s already present in the queue.":"%s 파일이 이미 대기열에 존재합니다.","File: %s":"파일: %s","b":"b","Uploaded %d/%d files":"%d / %d 파일 업로드 완료","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"업로드 가능한 파일의 수는 %d 입니다. 불필요한 파일은 삭제되었습니다.","%d files queued":"%d 파일이 추가됨","File: %s, size: %d, max file size: %d":"파일: %s, 크기: %d, 최대 파일 크기: %d","Drag files here.":"이곳에 파일을 드래그 하세요.","Runtime ran out of available memory.":"런타임 메모리가 부족합니다.","File count error.":"파일 갯수 오류.","File extension error.":"파일 확장자 오류.","Error: File too large:":"오류: 파일 크기가 너무 큽니다.","Add Files":"파일 추가"});
|
||||
2
assets/javascripts/plupload/js/i18n/ku_IQ.js
Normal file
2
assets/javascripts/plupload/js/i18n/ku_IQ.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Kurdish (Iraq) (ku_IQ)
|
||||
plupload.addI18n({"Stop Upload":"وەستانی بارکردن","Upload URL might be wrong or doesn't exist.":".بەستەری بارکراو نادروستە یان بەردەست نییە","tb":"تێرابایت","Size":"قەبارە","Close":"داخستن","Init error.":".هەڵەی ئامادەکردن","Add files to the upload queue and click the start button.":".زیادکردنی پەڕگەکان بۆ ڕیزی بارکردن و کرتەکردن لە دوگمەی دەستپێکردن","Filename":"ناوی پەڕگە","Image format either wrong or not supported.":".شێوازی وێنە هەڵەیە یان پاڵپشتی ناکرێت","Status":"ڕەوش","HTTP Error.":".HTTP هەڵەی","Start Upload":"دەستپێکردنی بارکردن","mb":"مێگابایت","kb":"کیلۆبایت","Duplicate file error.":".هەڵەی پەڕگەی دوبارە","File size error.":".هەڵەی قەبارەی پەڕگە","N/A":"بەردەست نییە","gb":"گێگابایت","Error: Invalid file extension:":":هەڵە: پاشگری پەڕگەی نادروست","Select files":"دیاریکردنی پەڕگەکان","%s already present in the queue.":".ئامادەیی هەیە لە ڕیز %s","File: %s":"%s :پەڕگە","b":"بایت","Uploaded %d/%d files":"پەڕگە بارکران %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"بەشی بارکردن تەنها %d پەڕگە(کان) وەردەگرێت لەیەک کاتدا. پەڕگە زیادەکان .جیادەکرێنەوە","%d files queued":"پەڕگە ڕیزکران %d","File: %s, size: %d, max file size: %d":"پەڕگە: %s، قەبارە: %d، گەورەترین قەبارەی پەڕگە: %d","Drag files here.":".پەڕگەکان ڕاکێشە بۆ ئێرە","Runtime ran out of available memory.":"هەڵەی دەرچوون لە بیرگەی بەردەست.","File count error.":".هەڵەی ژماردنی پەڕگە","File extension error.":".هەڵەی پاشگری پەڕگە","Error: File too large:":":هەڵە: پەڕگەکە زۆر گەورەیە","Add Files":"زیادکردنی پەڕگەکان"});
|
||||
2
assets/javascripts/plupload/js/i18n/lt.js
Normal file
2
assets/javascripts/plupload/js/i18n/lt.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Lithuanian (lt)
|
||||
plupload.addI18n({"Stop Upload":"Stabdyti įkėlimą","Upload URL might be wrong or doesn't exist.":"Klaidinga arba neegzistuojanti įkėlimo nuoroda.","tb":"tb","Size":"Dydis","Close":"Uždaryti","Init error.":"Įkrovimo klaida.","Add files to the upload queue and click the start button.":"Pridėkite bylas į įkėlimo eilę ir paspauskite starto mygtuką.","Filename":"Bylos pavadinimas","Image format either wrong or not supported.":"Paveiksliuko formatas klaidingas arba nebepalaikomas.","Status":"Statusas","HTTP Error.":"HTTP klaida.","Start Upload":"Pradėti įkėlimą","mb":"mb","kb":"kb","Duplicate file error.":"Pasikartojanti byla.","File size error.":"Netinkamas bylos dydis.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Klaida: Netinkamas bylos plėtinys:","Select files":"Žymėti bylas","%s already present in the queue.":"%s jau yra eilėje.","File: %s":"Byla: %s","b":"b","Uploaded %d/%d files":"Įkelta bylų: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Vienu metu galima įkelti tik %d bylas(ų). Papildomos bylos buvo pašalintos.","%d files queued":"%d bylų eilėje","File: %s, size: %d, max file size: %d":"Byla: %s, dydis: %d, galimas dydis: %d","Drag files here.":"Padėti bylas čia.","Runtime ran out of available memory.":"Išeikvota darbinė atmintis.","File count error.":"Netinkamas bylų kiekis.","File extension error.":"Netinkamas pletinys.","Error: File too large:":"Klaida: Byla per didelė:","Add Files":"Pridėti bylas"});
|
||||
2
assets/javascripts/plupload/js/i18n/lv.js
Normal file
2
assets/javascripts/plupload/js/i18n/lv.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Latvian (lv)
|
||||
plupload.addI18n({"Stop Upload":"Apturēt augšupielādi","Upload URL might be wrong or doesn't exist.":"Augšupielādes saite neeksistē vai ir nepareiza.","tb":"terabaiti","Size":"Izmērs","Close":"Aizvērt","Init error.":"Inicializācijas kļūda.","Add files to the upload queue and click the start button.":"Pievienojiet failus rindai un klikšķiniet uz pogas \"Sākt augšupielādi\".","Filename":"Faila nosaukums","Image format either wrong or not supported.":"Attēla formāts ir nepareizs vai arī netiek atbalstīts.","Status":"Statuss","HTTP Error.":"HTTP kļūda.","Start Upload":"Sākt augšupielādi","mb":"megabaiti","kb":"kilobaiti","Duplicate file error.":"Atkārtota faila kļūda","File size error.":"Faila izmēra kļūda.","N/A":"N/A","gb":"gigabaiti","Error: Invalid file extension:":"Kļūda: Nepareizs faila paplašinājums:","Select files":"Izvēlieties failus","%s already present in the queue.":"%s jau ir atrodams rindā.","File: %s":"Fails: %s","b":"baiti","Uploaded %d/%d files":"Augšupielādēti %d/%d faili","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Iespējams ielādēt tikai %d failus vienā reizē. Atlikušie faili netika pievienoti","%d files queued":"%d faili pievienoti rindai","File: %s, size: %d, max file size: %d":"Fails: %s, izmērs: %d, max faila izmērs: %d","Drag files here.":"Ievelciet failus šeit","Runtime ran out of available memory.":"Pietrūkst izmantojamās atmiņas.","File count error.":"Failu skaita kļūda","File extension error.":"Faila paplašinājuma kļūda.","Error: File too large:":"Kļūda: Fails pārāk liels:","Add Files":"Pievienot failus"});
|
||||
2
assets/javascripts/plupload/js/i18n/ms.js
Normal file
2
assets/javascripts/plupload/js/i18n/ms.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Malay (ms)
|
||||
plupload.addI18n({"Stop Upload":"Berhenti Muat naik","Upload URL might be wrong or doesn't exist.":"URL muat naik mungkin salah atau tidak wujud.","tb":"tb","Size":"saiz","Close":"Tutup","Init error.":"Ralat perlaksanaan.","Add files to the upload queue and click the start button.":"Tambah fail ke dalam giliran muat naik dan klik butang Muat Naik.","Filename":"Nama fail","Image format either wrong or not supported.":"Format imej sama ada salah atau tidak disokong.","Status":"Status","HTTP Error.":"Ralat HTTP.","Start Upload":"Muat Naik","mb":"mb","kb":"kb","Duplicate file error.":"Ralat menggandakan fail.","File size error.":"Ralat saiz fail.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Ralat: Sambungan fail tidak sah:","Select files":"Pilih fail","%s already present in the queue.":"%s telah ada dalam barisan.","File: %s":"Fail: %s","b":"b","Uploaded %d/%d files":"%d/%d telah dimuat naik","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Element muat naik hanya menerima %d fail(-fail) pada satu masa. Fail tambahan telah digugurkan.","%d files queued":"%d fail dalam barisan","File: %s, size: %d, max file size: %d":"Fail: %s, saiz: %d, saiz maks fail: %d","Drag files here.":"Seret fail ke sini.","Runtime ran out of available memory.":"Ruang ingatan masa larian tidak mencukupi.","File count error.":"Ralat bilangan fail.","File extension error.":"Ralat sambungan fail.","Error: File too large:":"Ralat: Fail terlalu bersar:","Add Files":"Tambah Fail"});
|
||||
2
assets/javascripts/plupload/js/i18n/nl.js
Normal file
2
assets/javascripts/plupload/js/i18n/nl.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Dutch (nl)
|
||||
plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL is verkeerd of bestaat niet.","tb":"tb","Size":"Grootte","Close":"Sluiten","Init error.":"Initialisatie error.","Add files to the upload queue and click the start button.":"Voeg bestanden toe aan de wachtrij en druk op 'Start'.","Filename":"Bestandsnaam","Image format either wrong or not supported.":"bestandsextensie is verkeerd of niet ondersteund.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Start Upload","mb":"mb","kb":"kb","Duplicate file error.":"Bestand bestaat al.","File size error.":"Bestandsgrootte error.","N/A":"Niet beschikbaar","gb":"gb","Error: Invalid file extension:":"Error: Ongeldige bestandsextensie:","Select files":"Selecteer bestand(en):","%s already present in the queue.":"%s is al aan de wachtrij toegevoegd.","File: %s":"Bestand: %s","b":"b","Uploaded %d/%d files":"%d/%d bestanden ge-upload","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload accepteert alleen %d bestand(en) tegelijk. Extra bestanden zijn verwijderd.","%d files queued":"%d bestand(en) in de wachtrij","File: %s, size: %d, max file size: %d":"Bestand: %s, grootte: %d, maximale bestandsgrootte: %d","Drag files here.":"Sleep bestanden hierheen.","Runtime ran out of available memory.":"Het maximum bruikbare geheugen is overschreden.","File count error.":"Teveel bestand(en) error.","File extension error.":"Ongeldig bestandsextensie.","Error: File too large:":"Error: Bestand te groot:","Add Files":"Bestand(en) toevoegen"});
|
||||
2
assets/javascripts/plupload/js/i18n/pl.js
Normal file
2
assets/javascripts/plupload/js/i18n/pl.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Polish (pl)
|
||||
plupload.addI18n({"Stop Upload":"Przerwij transfer.","Upload URL might be wrong or doesn't exist.":"Adres URL moze bys nieprawidlowy lub moze nieistniec","tb":"tb","Size":"Rozmiar","Close":"Zamknij","Init error.":"Błąd inicjalizacji.","Add files to the upload queue and click the start button.":"Dodaj pliki i kliknij 'Rozpocznij transfer'.","Filename":"Nazwa pliku","Image format either wrong or not supported.":"Format zdjecia jest zly lub nieobslugiwany","Status":"Status","HTTP Error.":"Błąd HTTP.","Start Upload":"Wyslij","mb":"mb","kb":"kb","Duplicate file error.":"Blad: duplikacja pliku.","File size error.":"Plik jest zbyt duży.","N/A":"Nie dostępne","gb":"gb","Error: Invalid file extension:":"Blad: Nieprawidlowe rozszerzenie pliku:","Select files":"Wybierz pliki:","%s already present in the queue.":"%s juz wystepuje w kolejce.","File: %s":"Plik: %s","b":"b","Uploaded %d/%d files":"Wysłano %d/%d plików","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d plików w kolejce.","File: %s, size: %d, max file size: %d":"Plik: %s, rozmiar: %d, maksymalny rozmiar pliku: %d","Drag files here.":"Przeciągnij tu pliki","Runtime ran out of available memory.":"Wyczerpano pamiec RAM.","File count error.":"Blad liczenia pliku.","File extension error.":"Nieobsługiwany format pliku.","Error: File too large:":"Blad: Plik za duzy:","Add Files":"Dodaj pliki"});
|
||||
2
assets/javascripts/plupload/js/i18n/pt_BR.js
Normal file
2
assets/javascripts/plupload/js/i18n/pt_BR.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Portuguese (Brazil) (pt_BR)
|
||||
plupload.addI18n({"Stop Upload":"Parar o envio","Upload URL might be wrong or doesn't exist.":"URL de envio está errada ou não existe","tb":"TB","Size":"Tamanho","Close":"Fechar","Init error.":"Erro inicializando.","Add files to the upload queue and click the start button.":"Adicione os arquivos abaixo e clique no botão \"Iniciar o envio\".","Filename":"Nome do arquivo","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"Erro HTTP.","Start Upload":"Iniciar o envio","mb":"MB","kb":"KB","Duplicate file error.":"Erro: Arquivo duplicado.","File size error.":"Tamanho de arquivo não permitido.","N/A":"N/D","gb":"GB","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Escolha os arquivos","%s already present in the queue.":"%s já presentes na fila.","File: %s":"Arquivo: %s","b":"Bytes","Uploaded %d/%d files":"Enviado(s) %d/%d arquivo(s)","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Só são aceitos %d arquivos por vez. O que passou disso foi descartado.","%d files queued":"%d arquivo(s)","File: %s, size: %d, max file size: %d":"Arquivo: %s, Tamanho: %d , Tamanho Máximo do Arquivo: %d","Drag files here.":"Arraste os arquivos pra cá","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Erro na contagem dos arquivos","File extension error.":"Tipo de arquivo não permitido.","Error: File too large:":"Error: File too large:","Add Files":"Adicionar arquivo(s)"});
|
||||
2
assets/javascripts/plupload/js/i18n/ro.js
Normal file
2
assets/javascripts/plupload/js/i18n/ro.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Romanian (ro)
|
||||
plupload.addI18n({"Stop Upload":"Oprește încărcarea","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"tb","Size":"Mărime","Close":"Închide","Init error.":"Eroare inițializare.","Add files to the upload queue and click the start button.":"Adaugă fișiere în lista apoi apasă butonul \"Începe încărcarea\".","Filename":"Nume fișier","Image format either wrong or not supported.":"Formatul de imagine ori este greșit ori nu este suportat.","Status":"Stare","HTTP Error.":"Eroare HTTP","Start Upload":"Începe încărcarea","mb":"mb","kb":"kb","Duplicate file error.":"Eroare duplicat fișier.","File size error.":"Eroare dimensiune fișier.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Eroare: Extensia fișierului este invalidă:","Select files":"Selectează fișierele","%s already present in the queue.":"%s există deja în lista de așteptare.","File: %s":"Fișier: %s","b":"b","Uploaded %d/%d files":"Fișiere încărcate %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d fișiere listate","File: %s, size: %d, max file size: %d":"Fișier: %s, mărime: %d, mărime maximă: %d","Drag files here.":"Trage aici fișierele.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Eroare numărare fișiere.","File extension error.":"Eroare extensie fișier.","Error: File too large:":"Eroare: Fișierul este prea mare:","Add Files":"Adaugă fișiere"});
|
||||
2
assets/javascripts/plupload/js/i18n/ru.js
Normal file
2
assets/javascripts/plupload/js/i18n/ru.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Russian (ru)
|
||||
plupload.addI18n({"Stop Upload":"Остановить Загрузку","Upload URL might be wrong or doesn't exist.":"Адрес заргузки неправильный или он не существует.","tb":"тб","Size":"Размер","Close":"Закрыть","Init error.":"Ошибка инициализации.","Add files to the upload queue and click the start button.":"Добавьте файлы в очередь и нажмите кнопку \"Загрузить файлы\".","Filename":"Имя файла","Image format either wrong or not supported.":"Формат картинки неправильный или он не поддерживается.","Status":"Статус","HTTP Error.":"Ошибка HTTP.","Start Upload":"Начать загрузку","mb":"мб","kb":"кб","Duplicate file error.":"Такой файл уже присутствует в очереди.","File size error.":"Неправильный размер файла.","N/A":"N/A","gb":"гб","Error: Invalid file extension:":"Ошибка: У файла неправильное расширение:","Select files":"Выберите файлы","%s already present in the queue.":"%s уже присутствует в очереди.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Загружено %d/%d файлов","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Загрузочный элемент за раз принимает только %d файл(ов). Лишние файлы были отброшены.","%d files queued":"В очереди %d файл(ов)","File: %s, size: %d, max file size: %d":"Файл: %s, размер: %d, макс. размер файла: %d","Drag files here.":"Перетащите файлы сюда.","Runtime ran out of available memory.":"Рабочая среда превысила лимит достуной памяти.","File count error.":"Слишком много файлов.","File extension error.":"Неправильное расширение файла.","Error: File too large:":"Ошибка: Файл слишком большой:","Add Files":"Добавьте файлы"});
|
||||
2
assets/javascripts/plupload/js/i18n/sk.js
Normal file
2
assets/javascripts/plupload/js/i18n/sk.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Slovak (sk)
|
||||
plupload.addI18n({"Stop Upload":"Zastaviť nahrávanie","Upload URL might be wrong or doesn't exist.":"URL pre nahratie nie je správna alebo neexistuje.","tb":"tb","Size":"Veľkosť","Close":"Zatvoriť","Init error.":"Chyba inicializácie.","Add files to the upload queue and click the start button.":"Pridajte súbory do zoznamu a potom spustite nahrávanie.","Filename":"Názov súboru","Image format either wrong or not supported.":"Formát obrázku je nesprávny alebo nie je podporovaný.","Status":"Stav","HTTP Error.":"HTTP Chyba.","Start Upload":"Spustiť nahrávanie","mb":"mb","kb":"kb","Duplicate file error.":"Duplicitný súbor.","File size error.":"Súbor je príliš veľký.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Error: Nesprávny typ súboru:","Select files":"Vyberte súbory","%s already present in the queue.":"%s sa už nachádza v zozname.","File: %s":"Súbor: %s","b":"b","Uploaded %d/%d files":"Nahraných %d/%d súborov","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d súborov pridaných do zoznamu","File: %s, size: %d, max file size: %d":"Súbor: %s, veľkosť: %d, max. veľkosť súboru: %d","Drag files here.":"Sem pretiahnite súbory.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"Nesprávny počet súborov.","File extension error.":"Chybný typ súboru.","Error: File too large:":"Chyba: Súbor je príliš veľký:","Add Files":"Pridať súbory"});
|
||||
2
assets/javascripts/plupload/js/i18n/sq.js
Normal file
2
assets/javascripts/plupload/js/i18n/sq.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Albanian (sq)
|
||||
plupload.addI18n({"Stop Upload":"Ndalimi i ngarkimit","Upload URL might be wrong or doesn't exist.":"Ngarkimi i URL-s është i gabuar ose nuk ekziston.","tb":"TB","Size":"Madhësia","Close":"Mbyll","Init error.":"Init gabim.","Add files to the upload queue and click the start button.":"Mbas ngarkimit të dosjeve sipas rradhës duhet të klikoni butonin Start.","Filename":"Emri i dosjes","Image format either wrong or not supported.":"Formati i fotove është i keq ose nuk është i pranueshëm.","Status":"Statusi","HTTP Error.":"HTTP Gabim.","Start Upload":"Nisja e ngarkimit","mb":"MB","kb":"KB","Duplicate file error.":"Gabim i dublikimit të dosjes.","File size error.":"Gabim i madhësisë së dosjes.","N/A":"Nuk është në dispozicion","gb":"GB","Error: Invalid file extension:":"Gabim: përhapja e llojit të dosjes është e pavlefshme:","Select files":"Zhgjidhni dosjet","%s already present in the queue.":"%s tashmë ekziston në list.","File: %s":"Dosje: %s","b":"B","Uploaded %d/%d files":"Dosjet e ngarkuara: %d/%d","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Ngarkimi pranon njëherësh vetëm %d dosje, dosjet e tjera nuk do të jenë të ngarkuara.","%d files queued":"Dosja %d e vendosur në rradhë","File: %s, size: %d, max file size: %d":"Dosje: %s, madhësia: %d, madhësia maximale e dosjes: %d","Drag files here.":"Këtu mund të tërhiqni dosjet","Runtime ran out of available memory.":"Memoria që ishte në dispozicion ka mbaruar.","File count error.":"Gabim në lidhje me numrin e dosjeve.","File extension error.":"Gabim i zgjerimit të dosjes.","Error: File too large:":"Gabim: dosja është shumë e madhe:","Add Files":"Shtoni dosjet"});
|
||||
2
assets/javascripts/plupload/js/i18n/sr.js
Normal file
2
assets/javascripts/plupload/js/i18n/sr.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Serbian (sr)
|
||||
plupload.addI18n({"Stop Upload":"Stop Upload","Upload URL might be wrong or doesn't exist.":"Upload URL might be wrong or doesn't exist.","tb":"","Size":"Veličina","Close":"Close","Init error.":"Init error.","Add files to the upload queue and click the start button.":"Dodajte fajlove u listu i kliknite na dugme Start.","Filename":"Naziv fajla","Image format either wrong or not supported.":"Image format either wrong or not supported.","Status":"Status","HTTP Error.":"HTTP Error.","Start Upload":"Počni upload","mb":"","kb":"","Duplicate file error.":"","File size error.":"File size error.","N/A":"N/A","gb":"","Error: Invalid file extension:":"Error: Invalid file extension:","Select files":"Izaberite fajlove","%s already present in the queue.":"","File: %s":"File: %s","b":"","Uploaded %d/%d files":"Snimljeno %d/%d fajlova","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Upload element accepts only %d file(s) at a time. Extra files were stripped.","%d files queued":"%d files queued","File: %s, size: %d, max file size: %d":"","Drag files here.":"Prevucite fajlove ovde.","Runtime ran out of available memory.":"Runtime ran out of available memory.","File count error.":"File count error.","File extension error.":"File extension error.","Error: File too large:":"Error: File too large:","Add Files":"Dodaj fajlove"});
|
||||
2
assets/javascripts/plupload/js/i18n/sv.js
Normal file
2
assets/javascripts/plupload/js/i18n/sv.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Swedish (sv)
|
||||
plupload.addI18n({"Stop Upload":"Avbryt","Upload URL might be wrong or doesn't exist.":"URL:en va fel eller existerar inte.","tb":"tb","Size":"Storlek","Close":"Stäng","Init error.":"Problem vid initialisering.","Add files to the upload queue and click the start button.":"Lägg till filer till kön och tryck på start.","Filename":"Filnamn","Image format either wrong or not supported.":"Bildformatet är fel eller så finns inte stöd för det.","Status":"Status","HTTP Error.":"HTTP problem.","Start Upload":"Starta","mb":"mb","kb":"kb","Duplicate file error.":"Problem med dubbla filer.","File size error.":"Problem med filstorlek.","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"Fel: Ej godkänd filändelse.","Select files":"Välj filer","%s already present in the queue.":"%s är redan tillagd.","File: %s":"Fil: %s","b":"b","Uploaded %d/%d files":"Laddade upp %d/%d filer","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Det går bara lägga till %d filer åt gången, allt utöver detta togs bort.","%d files queued":"%d filer i kö","File: %s, size: %d, max file size: %d":"Fil: %s, storlek: %d, max storlek: %d","Drag files here.":"Dra filer hit","Runtime ran out of available memory.":"Slut på minne.","File count error.":"Räknefel.","File extension error.":"Problem med filändelse.","Error: File too large:":"Fel: Filen är för stor:","Add Files":"Lägg till"});
|
||||
2
assets/javascripts/plupload/js/i18n/th_TH.js
Normal file
2
assets/javascripts/plupload/js/i18n/th_TH.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Thai (Thailand) (th_TH)
|
||||
plupload.addI18n({"Stop Upload":"หยุดอัพโหลด","Upload URL might be wrong or doesn't exist.":"URL ของการอัพโหลดอาจจะผิดหรือไม่มีอยู่","tb":"เทราไบต์","Size":"ขนาด","Close":"ปิด","Init error.":"Init เกิดข้อผิดพลาด","Add files to the upload queue and click the start button.":"เพิ่มไฟล์ไปยังคิวอัพโหลดและคลิกที่ปุ่มเริ่ม","Filename":"ชื่อไฟล์","Image format either wrong or not supported.":"รูปแบบรูปภาพทั้งสองผิดหรือไม่รองรับ","Status":"สถานะ","HTTP Error.":"HTTP เกิดข้อผิดพลาด","Start Upload":"เริ่มอัพโหลด","mb":"เมกะไบต์","kb":"กิโลไบต์","Duplicate file error.":"ไฟล์ที่ซ้ำกันเกิดข้อผิดพลาด","File size error.":"ขนาดไฟล์เกิดข้อผิดพลาด","N/A":"N/A","gb":"กิกะไบต์","Error: Invalid file extension:":"ข้อผิดพลาด: นามสกุลไฟล์ไม่ถูกต้อง:","Select files":"เลือกไฟล์","%s already present in the queue.":"%s อยู่ในคิวแล้ว","File: %s":"ไฟล์: %s","b":"ไบต์","Uploaded %d/%d files":"อัพโหลดแล้ว %d/%d ไฟล์","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"การอัพโหลดจะยอมรับเฉพาะ %d ไฟล์(s) ในช่วงเวลาเดียวกัน เมื่อไฟล์พิเศษถูกปลดออก","%d files queued":"%d ไฟล์ที่อยู่ในคิว","File: %s, size: %d, max file size: %d":"ไฟล์: %s, ขนาด: %d, ขนาดไฟล์สูงสุด: %d","Drag files here.":"ลากไฟล์มาที่นี่","Runtime ran out of available memory.":"รันไทม์วิ่งออกมาจากหน่วยความจำ","File count error.":"การนับไฟล์เกิดข้อผิดพลาด","File extension error.":"นามสกุลไฟล์เกิดข้อผิดพลาด","Error: File too large:":"ข้อผิดพลาด: ไฟล์ใหญ่เกินไป:","Add Files":"เพิ่มไฟล์"});
|
||||
2
assets/javascripts/plupload/js/i18n/tr.js
Normal file
2
assets/javascripts/plupload/js/i18n/tr.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Turkish (tr)
|
||||
plupload.addI18n({"Stop Upload":"Yüklemeyi durdur","Upload URL might be wrong or doesn't exist.":"URL yok ya da hatalı olabilir.","tb":"tb","Size":"Boyut","Close":"Kapat","Init error.":"Başlangıç hatası.","Add files to the upload queue and click the start button.":"Dosyaları kuyruğa ekleyin ve başlatma butonuna tıklayın.","Filename":"Dosya adı","Image format either wrong or not supported.":"Resim formatı yanlış ya da desteklenmiyor.","Status":"Durum","HTTP Error.":"HTTP hatası.","Start Upload":"Yüklemeyi başlat","mb":"mb","kb":"kb","Duplicate file error.":"Yinelenen dosya hatası.","File size error.":"Dosya boyutu hatası.","N/A":"-","gb":"gb","Error: Invalid file extension:":"Hata: Geçersiz dosya uzantısı:","Select files":"Dosyaları seç","%s already present in the queue.":"%s kuyrukta zaten mevcut.","File: %s":"Dosya: %s","b":"bayt","Uploaded %d/%d files":"%d/%d dosya yüklendi","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Yükleme elemanı aynı anda %d dosya kabul eder. Ekstra dosyalar işleme konulmaz.","%d files queued":"Kuyrukta %d dosya var.","File: %s, size: %d, max file size: %d":"Dosya: %s, boyut: %d, maksimum dosya boyutu: %d","Drag files here.":"Dosyaları buraya bırakın.","Runtime ran out of available memory.":"İşlem için yeterli bellek yok.","File count error.":"Dosya sayım hatası.","File extension error.":"Dosya uzantısı hatası.","Error: File too large:":"Hata: Dosya çok büyük:","Add Files":"Dosya ekle"});
|
||||
2
assets/javascripts/plupload/js/i18n/uk_UA.js
Normal file
2
assets/javascripts/plupload/js/i18n/uk_UA.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Ukrainian (Ukraine) (uk_UA)
|
||||
plupload.addI18n({"Stop Upload":"Зупинити завантаження","Upload URL might be wrong or doesn't exist.":"Адреса завантаження неправильна або не існує.","tb":"тб","Size":"Розмір","Close":"Закрити","Init error.":"Помилка ініціалізації.","Add files to the upload queue and click the start button.":"Додайте файли в чергу та натисніть кнопку \"Завантажити файли\".","Filename":"Назва файлу","Image format either wrong or not supported.":"Формат картинки не правильний або не підтримується.","Status":"Статус","HTTP Error.":"Помилка HTTP.","Start Upload":"Почати завантаження","mb":"мб","kb":"кб","Duplicate file error.":"Такий файл вже присутній в черзі.","File size error.":"Неправильний розмір файлу.","N/A":"Н/Д","gb":"гб","Error: Invalid file extension:":"Помилка: У файлу неправильне розширення:","Select files":"Оберіть файли","%s already present in the queue.":"%s вже присутній у черзі.","File: %s":"Файл: %s","b":"б","Uploaded %d/%d files":"Завантажено %d/%d файлів","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Завантажувальний елемент приймає лише %d файл(ів) одночасно. Зайві файли було відкинуто.","%d files queued":"В черзі %d файл(ів)","File: %s, size: %d, max file size: %d":"Файл: %s, розмір: %d, макс. розмір файлу: %d","Drag files here.":"Перетягніть файли сюди.","Runtime ran out of available memory.":"Робоче середовище перевищило ліміт доступної пам'яті.","File count error.":"Занадто багато файлів.","File extension error.":"Неправильне розширення файлу.","Error: File too large:":"Помилка: Файл занадто великий:","Add Files":"Додати файли"});
|
||||
2
assets/javascripts/plupload/js/i18n/vi.js
Normal file
2
assets/javascripts/plupload/js/i18n/vi.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Vietnamese (vi)
|
||||
plupload.addI18n({"Stop Upload":"Dừng","Upload URL might be wrong or doesn't exist.":"Đường dẫn URL tải lên không đúng hoặc không tồn tại.","tb":"TB","Size":"Dung lượng","Close":"Đóng","Init error.":"Lỗi khởi tạo","Add files to the upload queue and click the start button.":"Thêm tập tin để tải lên và bấm vào nút bắt đầu","Filename":"Tên tập tin","Image format either wrong or not supported.":"Địng dạng hình ảnh không đúng hoặc không được hỗ trợ.","Status":"Trạng thái","HTTP Error.":"Lỗi HTTP","Start Upload":"Bắt đầu","mb":"MB","kb":"KB","Duplicate file error.":"Tập tin đã tồn tại","File size error.":"Lỗi dung lượng tập tin","N/A":"Chưa có thông tin","gb":"GB","Error: Invalid file extension:":"Lỗi: Định dạng tập tin không xác định:","Select files":"Chọn tập tin","%s already present in the queue.":"%s đã có trong danh sách chờ tải lên","File: %s":"Tập tin: %s","b":"B","Uploaded %d/%d files":"Đã tải lên %d/%d tập tin","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"Chỉ có thể tải lên (%d) tập tin cùng một lúc. Những tập tin còn lại đã bị huỷ bỏ.","%d files queued":"%d tập tin trong danh sách chờ","File: %s, size: %d, max file size: %d":"Tập tin: %s, dung lượng %d, dung lượng tối đa: %d","Drag files here.":"Ném vào đây","Runtime ran out of available memory.":"Thời gian chạy vượt quá giới hạn bộ nhớ cho phép.","File count error.":"Lỗi đếm tập tin","File extension error.":"Lỗi định dạng tập tin","Error: File too large:":"Lỗi: Dung lượng tập tin quá lớn:","Add Files":"Thêm tập tin"});
|
||||
2
assets/javascripts/plupload/js/i18n/zh_CN.js
Normal file
2
assets/javascripts/plupload/js/i18n/zh_CN.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Chinese (China) (zh_CN)
|
||||
plupload.addI18n({"Stop Upload":"停止上传","Upload URL might be wrong or doesn't exist.":"上传的URL可能是错误的或不存在。","tb":"tb","Size":"大小","Close":"关闭","Init error.":"初始化错误。","Add files to the upload queue and click the start button.":"将文件添加到上传队列,然后点击”开始上传“按钮。","Filename":"文件名","Image format either wrong or not supported.":"图片格式错误或者不支持。","Status":"状态","HTTP Error.":"HTTP 错误。","Start Upload":"开始上传","mb":"mb","kb":"kb","Duplicate file error.":"重复文件错误。","File size error.":"文件大小错误。","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"错误:无效的文件扩展名:","Select files":"选择文件","%s already present in the queue.":"%s 已经在当前队列里。","File: %s":"文件: %s","b":"b","Uploaded %d/%d files":"已上传 %d/%d 个文件","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"每次只接受同时上传 %d 个文件,多余的文件将会被删除。","%d files queued":"%d 个文件加入到队列","File: %s, size: %d, max file size: %d":"文件: %s, 大小: %d, 最大文件大小: %d","Drag files here.":"把文件拖到这里。","Runtime ran out of available memory.":"运行时已消耗所有可用内存。","File count error.":"文件数量错误。","File extension error.":"文件扩展名错误。","Error: File too large:":"错误: 文件太大:","Add Files":"增加文件"});
|
||||
2
assets/javascripts/plupload/js/i18n/zh_TW.js
Normal file
2
assets/javascripts/plupload/js/i18n/zh_TW.js
Normal file
@ -0,0 +1,2 @@
|
||||
// Chinese (Taiwan) (zh_TW)
|
||||
plupload.addI18n({"Stop Upload":"停止上傳","Upload URL might be wrong or doesn't exist.":"檔案URL可能有誤或者不存在。","tb":"tb","Size":"大小","Close":"關閉","Init error.":"初始化錯誤。","Add files to the upload queue and click the start button.":"將檔案加入上傳序列,然後點選”開始上傳“按鈕。","Filename":"檔案名稱","Image format either wrong or not supported.":"圖片格式錯誤或者不支援。","Status":"狀態","HTTP Error.":"HTTP 錯誤。","Start Upload":"開始上傳","mb":"mb","kb":"kb","Duplicate file error.":"錯誤:檔案重複。","File size error.":"錯誤:檔案大小超過限制。","N/A":"N/A","gb":"gb","Error: Invalid file extension:":"錯誤:不接受的檔案格式:","Select files":"選擇檔案","%s already present in the queue.":"%s 已經存在目前的檔案序列。","File: %s":"檔案: %s","b":"b","Uploaded %d/%d files":"已上傳 %d/%d 個文件","Upload element accepts only %d file(s) at a time. Extra files were stripped.":"每次只能上傳 %d 個檔案,超過限制數量的檔案將被忽略。","%d files queued":"%d 個檔案加入到序列","File: %s, size: %d, max file size: %d":"檔案: %s, 大小: %d, 檔案大小上限: %d","Drag files here.":"把檔案拖曳到這裡。","Runtime ran out of available memory.":"執行時耗盡了所有可用的記憶體。","File count error.":"檔案數量錯誤。","File extension error.":"檔案副檔名錯誤。","Error: File too large:":"錯誤: 檔案大小太大:","Add Files":"增加檔案"});
|
||||
@ -2,6 +2,10 @@
|
||||
Plupload
|
||||
------------------------------------------------------------------- */
|
||||
|
||||
.plupload_wrapper * {
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.plupload_button {
|
||||
display: -moz-inline-box; /* FF < 3*/
|
||||
display: inline-block;
|
||||
@ -107,7 +111,11 @@
|
||||
}
|
||||
.plupload_file_size, .plupload_file_status, .plupload_file_action {text-align: right;}
|
||||
|
||||
.plupload_filelist .plupload_file_name {width: 205px}
|
||||
.plupload_filelist .plupload_file_name {
|
||||
width: 205px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.plupload_file_action {
|
||||
float: right;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user