new themes added to desktop plus theme uploader created
This commit is contained in:
1 parent
6d89eab98a
commit
f7dbbf1bca
238 files changed
+299
-545
No files matched your search
@@ -31,7 +31,7 @@ class DesktopController< ApplicationController
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
def themes
|
||||
def get_themes
|
||||
@themes = DesktopTheme.all
|
||||
# raise @themes.inspect
|
||||
render "desktop/settings/themes", :layout => false
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
class DesktopThemesController < OrbitBackendController
|
||||
require "net/http"
|
||||
require "uri"
|
||||
require 'zip/zip'
|
||||
|
||||
def index
|
||||
@desktopThemes = DesktopTheme.all
|
||||
end
|
||||
|
||||
def destroy
|
||||
dt = DesktopTheme.find(params[:id])
|
||||
dt.destroy
|
||||
redirect_to desktop_theme_path
|
||||
end
|
||||
|
||||
def upload
|
||||
if !params[:desktop_theme].nil?
|
||||
temp_file = Tempfile.new("temp_file")
|
||||
original_file = params[:desktop_theme][:package_file]
|
||||
#if original_file.content_type == 'application/zip'
|
||||
temp_file.write(original_file.read.force_encoding('UTF-8'))
|
||||
temp_file.rewind
|
||||
filename = File.basename(original_file.original_filename,".zip")
|
||||
unzip_widget(temp_file, filename)
|
||||
#else
|
||||
# flash[:error] = "Upload file should be in zip format"
|
||||
#end
|
||||
temp_file.close
|
||||
end
|
||||
end
|
||||
def edit
|
||||
@dw = DesktopWidget.find(params[:id])
|
||||
end
|
||||
|
||||
|
||||
def unzip_widget(file, zip_name)
|
||||
Zip::ZipFile.open(file) { |zip_file|
|
||||
dt = DesktopTheme.new.from_json(zip_file.read("#{zip_name}/settings.json"))
|
||||
Dir.mktmpdir('f_path') { |dir|
|
||||
images_entries = []
|
||||
zip_file.entries.each do |entry|
|
||||
case (path = entry.to_s)
|
||||
when /\A(#{zip_name})\/(theme\.css)\z/
|
||||
#for default css
|
||||
dt.build_css_default(:file => get_temp_file(zip_file, dir, entry))
|
||||
when /\A(#{zip_name})\/(background)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img
|
||||
images_entries << entry
|
||||
end
|
||||
end
|
||||
images_entries.each do |image|
|
||||
dt.images.build(:file => get_temp_file(zip_file,dir,image))
|
||||
end
|
||||
}
|
||||
dt.save
|
||||
}
|
||||
end
|
||||
def get_temp_file(zip_file, dir, entry)
|
||||
filename = File.basename(entry.to_s)
|
||||
temp_file = File.new(dir + '/' + filename, 'w+')
|
||||
temp_file.write (zip_file.read entry ).force_encoding('UTF-8')
|
||||
temp_file
|
||||
end
|
||||
|
||||
def settings
|
||||
if params[:id] == "custom"
|
||||
@id = DesktopTheme.first.id.to_s
|
||||
else
|
||||
@id = params[:id]
|
||||
end
|
||||
dt = DesktopTheme.find(@id)
|
||||
if !dt.nil?
|
||||
dt['css'] = dt.css_default.file.url
|
||||
dt['background'] = dt.images.where(:name=>dt.background).first.file.url
|
||||
end
|
||||
icons = DesktopTheme::ICONS
|
||||
dt['icons'] = icons
|
||||
|
||||
render :json => dt.to_json
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user