From 28337c6b5b019a0d4e6007ff739d2b1da7c06827 Mon Sep 17 00:00:00 2001 From: Harry Bomrah Date: Thu, 1 Nov 2012 20:42:40 +0800 Subject: [PATCH] update for desktop widgets --- app/controllers/desktop_widgets_controller.rb | 61 +++++++++++++ app/controllers/otheraccounts_controller.rb | 2 +- app/models/design/css_default.rb | 1 + app/models/design/image.rb | 1 + app/models/design/javascript.rb | 1 + app/models/design/stylesheet.rb | 31 +++++++ app/models/{ => desktop}/desktop.rb | 2 +- app/models/{ => desktop}/desktop_theme.rb | 0 app/models/desktop/desktop_widget.rb | 31 +++++++ app/models/{ => desktop}/group.rb | 0 app/models/{ => desktop}/other_account.rb | 0 app/models/{ => desktop}/section.rb | 0 app/models/{ => desktop}/tile.rb | 3 +- app/models/desktop/widget_layout.rb | 18 ++++ app/models/desktop_widget.rb | 13 --- app/views/desktop_widgets/upload.html.erb | 12 +++ config/application.rb | 1 + config/routes.rb | 83 ++++++++++-------- lib/parsers/parser_layout_widget.rb | 15 ++++ .../4fa7810ac88514014d7c59bc/index.html.erb | 81 ----------------- .../4fa7810ac88514014d7c59bc/temp/bg_blue.png | Bin 16038 -> 0 bytes .../temp/bg_green.png | Bin 15812 -> 0 bytes .../temp/bg_orange.png | Bin 16256 -> 0 bytes .../4fa7817cc88514014d7c59c2/index.html.erb | 45 ---------- .../{index.html.erb => index.html} | 0 .../temp/clock.css => clock/default.css} | 0 .../img => clock/images}/bg_blue.png | Bin .../img => clock/images}/bg_green.png | Bin .../img => clock/images}/bg_orange.png | Bin .../javascripts/clock.js} | 0 public/desktop_widgets/clock/settings.json | 7 ++ public/desktop_widgets/clock/widget.html | 5 ++ public/desktop_widgets/weather/default.css | 26 ++++++ .../img => weather/images}/sunny.png | Bin .../javascripts/weather.js} | 0 public/desktop_widgets/weather/settings.json | 7 ++ public/desktop_widgets/weather/widget.html | 17 ++++ 37 files changed, 284 insertions(+), 179 deletions(-) create mode 100644 app/controllers/desktop_widgets_controller.rb rename app/models/{ => desktop}/desktop.rb (86%) rename app/models/{ => desktop}/desktop_theme.rb (100%) create mode 100644 app/models/desktop/desktop_widget.rb rename app/models/{ => desktop}/group.rb (100%) rename app/models/{ => desktop}/other_account.rb (100%) rename app/models/{ => desktop}/section.rb (100%) rename app/models/{ => desktop}/tile.rb (97%) create mode 100644 app/models/desktop/widget_layout.rb delete mode 100644 app/models/desktop_widget.rb create mode 100644 app/views/desktop_widgets/upload.html.erb create mode 100644 lib/parsers/parser_layout_widget.rb delete mode 100755 public/desktop_widgets/4fa7810ac88514014d7c59bc/index.html.erb delete mode 100755 public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_blue.png delete mode 100755 public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_green.png delete mode 100755 public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_orange.png delete mode 100644 public/desktop_widgets/4fa7817cc88514014d7c59c2/index.html.erb rename public/desktop_widgets/4fa7818cc88514014d7c59c3/{index.html.erb => index.html} (100%) rename public/desktop_widgets/{4fa7810ac88514014d7c59bc/temp/clock.css => clock/default.css} (100%) rename public/desktop_widgets/{4fa7810ac88514014d7c59bc/img => clock/images}/bg_blue.png (100%) rename public/desktop_widgets/{4fa7810ac88514014d7c59bc/img => clock/images}/bg_green.png (100%) rename public/desktop_widgets/{4fa7810ac88514014d7c59bc/img => clock/images}/bg_orange.png (100%) rename public/desktop_widgets/{4fa7810ac88514014d7c59bc/4fa7810ac88514014d7c59bc.js => clock/javascripts/clock.js} (100%) create mode 100644 public/desktop_widgets/clock/settings.json create mode 100755 public/desktop_widgets/clock/widget.html create mode 100644 public/desktop_widgets/weather/default.css rename public/desktop_widgets/{4fa7817cc88514014d7c59c2/img => weather/images}/sunny.png (100%) rename public/desktop_widgets/{4fa7817cc88514014d7c59c2/4fa7817cc88514014d7c59c2.js => weather/javascripts/weather.js} (100%) create mode 100644 public/desktop_widgets/weather/settings.json create mode 100644 public/desktop_widgets/weather/widget.html diff --git a/app/controllers/desktop_widgets_controller.rb b/app/controllers/desktop_widgets_controller.rb new file mode 100644 index 000000000..6807082cc --- /dev/null +++ b/app/controllers/desktop_widgets_controller.rb @@ -0,0 +1,61 @@ +class DesktopWidgetsController < OrbitBackendController + require "net/http" + require "uri" + require 'zip/zip' + + def index + end + + def upload + if !params[:desktop_widget].nil? + temp_file = Tempfile.new("temp_file") + original_file = params[:desktop_widget][: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 unzip_widget(file, zip_name) + Zip::ZipFile.open(file) { |zip_file| + dw = DesktopWidget.new.from_json(zip_file.read("#{zip_name}/settings.json")) + Dir.mktmpdir('f_path') { |dir| + javascripts_entries = [] + images_entries = [] + + zip_file.entries.each do |entry| + case (path = entry.to_s) + when /\A(#{zip_name})\/(default\.css)\z/ #for default css + dw.build_css_default(:file => get_temp_file(zip_file, dir, entry)) + when /\A(#{zip_name})\/(widget\.html)\z/ #for layout html + dw.build_widget_layout(:file => get_temp_file(zip_file, dir, entry)) + when /\A(#{zip_name})\/(javascripts)\/.*(\.js)\z/ #for js + javascripts_entries << entry + when /\A(#{zip_name})\/(images)\/.*((\.jpg)|(\.png)|(\.gif))\z/ #for img + images_entries << entry + end + end + + ['javascripts', 'images'].each do |type| + eval("#{type}_entries").each do |entry| + eval("dw.#{type}").build(:file => get_temp_file(zip_file, dir, entry)) + end + end + } + dw.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 + +end \ No newline at end of file diff --git a/app/controllers/otheraccounts_controller.rb b/app/controllers/otheraccounts_controller.rb index 454f108ee..d946bd3ce 100644 --- a/app/controllers/otheraccounts_controller.rb +++ b/app/controllers/otheraccounts_controller.rb @@ -1,4 +1,4 @@ -class OtheraccountsController< ApplicationController +class Desktop::OtheraccountsController< ApplicationController require 'open-uri' require 'rexml/document' require 'net/http' diff --git a/app/models/design/css_default.rb b/app/models/design/css_default.rb index 3ee5a58c0..9b2b17fcb 100644 --- a/app/models/design/css_default.rb +++ b/app/models/design/css_default.rb @@ -1,5 +1,6 @@ class CssDefault < Stylesheet belongs_to :design + belongs_to :desktop_widget end diff --git a/app/models/design/image.rb b/app/models/design/image.rb index 91c4a733f..355f66f75 100644 --- a/app/models/design/image.rb +++ b/app/models/design/image.rb @@ -11,6 +11,7 @@ class Image mount_uploader :file, ImageUploader belongs_to :design + belongs_to :desktop_widget before_save :set_name diff --git a/app/models/design/javascript.rb b/app/models/design/javascript.rb index 439e3b982..4d13d0a33 100644 --- a/app/models/design/javascript.rb +++ b/app/models/design/javascript.rb @@ -1,3 +1,4 @@ class Javascript < DesignFile belongs_to :design + belongs_to :desktop_widget end diff --git a/app/models/design/stylesheet.rb b/app/models/design/stylesheet.rb index 525e40f3f..47c13585c 100644 --- a/app/models/design/stylesheet.rb +++ b/app/models/design/stylesheet.rb @@ -1,5 +1,6 @@ class Stylesheet < DesignFile belongs_to :design + belongs_to :desktop_widget mount_uploader :file_orig, AssetUploader def parse_urls @@ -32,5 +33,35 @@ class Stylesheet < DesignFile self.save } end + def parse_widgets_urls + orig_content = content = self.file.read.force_encoding("UTF-8") + # self.remove_file! + # self.remove_file_orig! + names = [] + images = self.desktop_widget.images + content.scan(/(?<=url)(.*?)(?=\))/){ + css_name = $1.gsub(' ','').gsub('(','') + name = File.basename(css_name).gsub(/[\\\"]/, '') + image = images.detect{ |i| i.file_identifier.eql?(name) } rescue nil + image.update_attribute(:in_css, true) if image + file_name = image.file_url rescue nil + names << [css_name, file_name] + } + names.each do |name| + content.gsub!(name[0], name[1]) if name[1] + end + Dir.mktmpdir('f_path') { |dir| + orig_file_name = self.file_identifier + + temp_file = File.new(dir + '/' + orig_file_name, 'w+') + temp_file.write orig_content.force_encoding("UTF-8") + self.file_orig = temp_file + + temp_file = File.new(dir + '/' + orig_file_name, 'w+') + temp_file.write content.force_encoding("UTF-8") + self.file = temp_file + self.save + } + end end diff --git a/app/models/desktop.rb b/app/models/desktop/desktop.rb similarity index 86% rename from app/models/desktop.rb rename to app/models/desktop/desktop.rb index e8c1e9c44..20a6e5771 100644 --- a/app/models/desktop.rb +++ b/app/models/desktop/desktop.rb @@ -9,7 +9,7 @@ class Desktop belongs_to :user has_many :sections, :autosave => true, :dependent => :destroy - has_many :desktop_widgets, :autosave => true, :dependent => :destroy + # has_many :desktop_widgets, :autosave => true, :dependent => :destroy before_create :initialize_section diff --git a/app/models/desktop_theme.rb b/app/models/desktop/desktop_theme.rb similarity index 100% rename from app/models/desktop_theme.rb rename to app/models/desktop/desktop_theme.rb diff --git a/app/models/desktop/desktop_widget.rb b/app/models/desktop/desktop_widget.rb new file mode 100644 index 000000000..20eda85a2 --- /dev/null +++ b/app/models/desktop/desktop_widget.rb @@ -0,0 +1,31 @@ +class DesktopWidget + include Mongoid::Document + include Mongoid::Timestamps + include ParserLayoutWidget + + field :name + field :author + field :shape + field :version, :type => String + + has_one :css_default, :autosave => true, :dependent => :destroy + has_one :widget_layout, :autosave => true, :dependent => :destroy + has_many :images, :autosave => true, :dependent => :destroy + has_many :javascripts, :autosave => true, :dependent => :destroy + + accepts_nested_attributes_for :images, :allow_destroy => true + accepts_nested_attributes_for :javascripts, :allow_destroy => true + + after_save :parse_css_for_images + + # belongs_to :desktop + + + protected + + def parse_css_for_images + self.css_default.parse_widgets_urls + parse_widget_for_images(self) + end + +end \ No newline at end of file diff --git a/app/models/group.rb b/app/models/desktop/group.rb similarity index 100% rename from app/models/group.rb rename to app/models/desktop/group.rb diff --git a/app/models/other_account.rb b/app/models/desktop/other_account.rb similarity index 100% rename from app/models/other_account.rb rename to app/models/desktop/other_account.rb diff --git a/app/models/section.rb b/app/models/desktop/section.rb similarity index 100% rename from app/models/section.rb rename to app/models/desktop/section.rb diff --git a/app/models/tile.rb b/app/models/desktop/tile.rb similarity index 97% rename from app/models/tile.rb rename to app/models/desktop/tile.rb index 70066d1be..306338a17 100644 --- a/app/models/tile.rb +++ b/app/models/desktop/tile.rb @@ -9,6 +9,5 @@ class Tile field :title belongs_to :group - - + end diff --git a/app/models/desktop/widget_layout.rb b/app/models/desktop/widget_layout.rb new file mode 100644 index 000000000..25389682c --- /dev/null +++ b/app/models/desktop/widget_layout.rb @@ -0,0 +1,18 @@ +class WidgetLayout < DesignFile + + attr_reader :content + + field :body + + belongs_to :desktop_widget + + + def content + self.file.read.force_encoding("UTF-8") rescue '' + end + + def self.exist_one? + WidgetLayout.count > 0 + end + +end diff --git a/app/models/desktop_widget.rb b/app/models/desktop_widget.rb deleted file mode 100644 index eb0446ded..000000000 --- a/app/models/desktop_widget.rb +++ /dev/null @@ -1,13 +0,0 @@ -class DesktopWidget - include Mongoid::Document - include Mongoid::Timestamps - - field :name - field :author - field :shape - field :desktop_id - field :status - field :section - - belongs_to :desktop -end \ No newline at end of file diff --git a/app/views/desktop_widgets/upload.html.erb b/app/views/desktop_widgets/upload.html.erb new file mode 100644 index 000000000..19d3ff1a9 --- /dev/null +++ b/app/views/desktop_widgets/upload.html.erb @@ -0,0 +1,12 @@ +

Upload Widget Package

+
+ <%= form_tag '',:multipart => true,:action=>"post" do |f| %> + +

+ <%= file_field :desktop_widget,:package_file %> +

+ <%= submit_tag %> + + <% end %> + +
\ No newline at end of file diff --git a/config/application.rb b/config/application.rb index ccc4a65ec..f0e40fcca 100644 --- a/config/application.rb +++ b/config/application.rb @@ -33,6 +33,7 @@ module Orbit config.autoload_paths += %W(#{config.root}/app/models/meta) config.autoload_paths += %W(#{config.root}/app/models/purchase) config.autoload_paths += %W(#{config.root}/app/models/user) + config.autoload_paths += %W(#{config.root}/app/models/desktop) # Include all helpers # 'helper :all' must be removed in ApplicationController diff --git a/config/routes.rb b/config/routes.rb index 88a39f422..17e96a603 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -143,7 +143,17 @@ Orbit::Application.routes.draw do resources :users end - match '/desktop/'=>'desktop#index' + resources :desktop_widgets do + collection do + get 'upload' + get 'delete' + post 'upload' + end + end + +namespace :desktop do + + match "/"=>"desktop#index" # Sinatra Routes start @@ -178,46 +188,46 @@ Orbit::Application.routes.draw do # Sinatra Routes end - match '/desktop/desktop'=>'desktop#desktop' - match '/desktop/app_manager'=>'desktop#app_manager' - match '/desktop/sections'=>'desktop#sections' - match '/desktop/settings'=>'desktop#settings' - match '/desktop/get_desktop_settings/'=>'desktop#get_desktop_settings' - match '/desktop/save_desktop_settings/'=>'desktop#save_desktop_settings' - match '/desktop/getgroups/'=>'desktop#getgroups' - match '/desktop/getsectionlist/'=>'desktop#getsectionlist' - match '/desktop/settingthemes/'=>'desktop#settingthemes' - match '/desktop/settingsections/'=>'desktop#settingsections' - match '/desktop/getapplist/'=>'desktop#getapplist' - match '/desktop/newpositions/'=>'desktop#newpositions' - match '/desktop/settingconnection/'=>'desktop#settingconnection' + match '/desktop'=>'desktop#desktop' + match '/app_manager'=>'desktop#app_manager' + match '/sections'=>'desktop#sections' + match '/settings'=>'desktop#settings' + match '/get_desktop_settings/'=>'desktop#get_desktop_settings' + match '/save_desktop_settings/'=>'desktop#save_desktop_settings' + match '/getgroups/'=>'desktop#getgroups' + match '/getsectionlist/'=>'desktop#getsectionlist' + match '/settingthemes/'=>'desktop#settingthemes' + match '/settingsections/'=>'desktop#settingsections' + match '/getapplist/'=>'desktop#getapplist' + match '/newpositions/'=>'desktop#newpositions' + match '/settingconnection/'=>'desktop#settingconnection' - match '/desktop/journal_p/'=>'desktop_publications#journal_p' - match '/desktop/journal_p_list/'=>'desktop_publications#journal_p_list' - match '/desktop/journal_p_add/'=>'desktop_publications#journal_p_add' - match '/desktop_publications/getjournals' => 'desktop_publications#getjournals' - match '/desktop/books' => 'desktop_publications#books' - match '/desktop/books_list/'=>'desktop_publications#books_list' - match '/desktop/books_add/'=>'desktop_publications#books_add' + match '/journal_p/'=>'desktop_publications#journal_p' + match '/journal_p_list/'=>'desktop_publications#journal_p_list' + match '/journal_p_add/'=>'desktop_publications#journal_p_add' + match '/books' => 'desktop_publications#books' + match '/books_list/'=>'desktop_publications#books_list' + match '/books_add/'=>'desktop_publications#books_add' - match '/desktop/seminar_p' => 'desktop_publications#seminar_p' - match '/desktop/seminar_p_list/'=>'desktop_publications#seminar_p_list' - match '/desktop/seminar_p_add/'=>'desktop_publications#seminar_p_add' + match '/seminar_p' => 'desktop_publications#seminar_p' + match '/seminar_p_list/'=>'desktop_publications#seminar_p_list' + match '/seminar_p_add/'=>'desktop_publications#seminar_p_add' - match '/desktop/research_d' => 'desktop_research#research_d' - match '/desktop/research_d_list/' => 'desktop_research#research_d_list' - match '/desktop/research_d_add' => 'desktop_research#research_d_add' + match '/research_d' => 'desktop_research#research_d' + match '/research_d_list/' => 'desktop_research#research_d_list' + match '/research_d_add' => 'desktop_research#research_d_add' - match '/desktop/research_p' => 'desktop_research#research_p' - match '/desktop/research_p_list/' => 'desktop_research#research_p_list' - match '/desktop/research_p_add' => 'desktop_research#research_p_add' + match '/research_p' => 'desktop_research#research_p' + match '/research_p_list/' => 'desktop_research#research_p_list' + match '/research_p_add' => 'desktop_research#research_p_add' + match '/temp_func/'=>'desktop#temp_func' +end - - match '/desktop/twitter/'=>'otheraccounts#twitter' - match '/desktop/forgmail/'=>'otheraccounts#gmail' - match '/desktop/getaccounts'=>'otheraccounts#getaccounts' - match '/desktop/save_account_info/'=>'otheraccounts#saveaccountinfo' + match '/twitter/'=>'otheraccounts#twitter' + match '/forgmail/'=>'otheraccounts#gmail' + match '/getaccounts'=>'otheraccounts#getaccounts' + match '/save_account_info/'=>'otheraccounts#saveaccountinfo' match '/desktop_appstore/appstore'=>'desktop_appstore#appstore' match '/desktop_appstore/widgets'=>'desktop_appstore#widgets' @@ -228,13 +238,14 @@ Orbit::Application.routes.draw do match '/desktop_orbit/eventajaxload'=> 'desktop_orbit#eventajaxload' match '/desktop_orbit/gettimelinespan' => 'desktop_orbit#gettimelinespan' + match '/desktop_publications/getjournals' => 'desktop_publications#getjournals' #match '/desktop_orbit/eventajaxload' => 'desktop_publications#create_journal' #match '/desktop_orbit/eventajaxload' => 'desktop_publications#delete_journal' # match '/desktop_orbit/eventajaxload' => 'desktop_publications#update_journal' - match '/desktop/temp_func/'=>'desktop#temp_func' + match '/panel/:app_name/front_end/:app_action/:id(/:controller_action)' => 'pages#show_from_link', :constraints => lambda { |request| !request.query_string.include?("inner=true") diff --git a/lib/parsers/parser_layout_widget.rb b/lib/parsers/parser_layout_widget.rb new file mode 100644 index 000000000..6749dae3f --- /dev/null +++ b/lib/parsers/parser_layout_widget.rb @@ -0,0 +1,15 @@ +module ParserLayoutWidget + require 'nokogiri' + + def parse_widget_for_images(widget) + widge = Nokogiri::HTML(widget.widget_layout.body) + + widge.css('.widget_image').each do |page_image| + image = widget.images.where( file: File.basename(page_image['src']))[0] + image.update_attributes(:html_id => page_image['id'], :html_class => page_image['class'], :in_html => true) if image + end + + end + + +end diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/index.html.erb b/public/desktop_widgets/4fa7810ac88514014d7c59bc/index.html.erb deleted file mode 100755 index 2a69e24cd..000000000 --- a/public/desktop_widgets/4fa7810ac88514014d7c59bc/index.html.erb +++ /dev/null @@ -1,81 +0,0 @@ - - -
- \ No newline at end of file diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_blue.png b/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_blue.png deleted file mode 100755 index ea275d1b487753e0d08761029f139510ec7619dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16038 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 diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_green.png b/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_green.png deleted file mode 100755 index 393618c276b9a5c208bc009b6d38c1023d91ff86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15812 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 Kl&BRm3jRO#JEtxH diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_orange.png b/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/bg_orange.png deleted file mode 100755 index 84d322073fd2971463913a159079d1b09d86882a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16256 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 - .g_weather { position: relative; height: 198px; } - .g_weather img { float: left; display: block; margin: 0; padding: 12px; } - .g_weather .gw_recent { - overflow: hidden; - height: 96%; - padding-top: 4%; - } - .g_weather .gw_weekly { display: none; } - .g_weather .gw_location { - position: absolute; - left: 0; - bottom: 0; - font-size: 15px; - line-height: 20px; - } - .g_weather .gw_condition_des { font-size: 22px; } - .g_weather .gw_temp { margin-top: 26px; } - .g_weather .gw_temp_num { font-size: 56px; } - .g_weather .gw_temp_unit { font-size: 26px; } - .g_weather .gw_forecast { - position: absolute; - right: 0; - bottom: 0; - font-size: 13px; - line-height: 20px; - } - -

-
- sunny -
- 29°C -
-
Sunny
-
-
- weekly report -
-
Hsin-Chu
- > Weekly Report -
- \ No newline at end of file diff --git a/public/desktop_widgets/4fa7818cc88514014d7c59c3/index.html.erb b/public/desktop_widgets/4fa7818cc88514014d7c59c3/index.html similarity index 100% rename from public/desktop_widgets/4fa7818cc88514014d7c59c3/index.html.erb rename to public/desktop_widgets/4fa7818cc88514014d7c59c3/index.html diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/clock.css b/public/desktop_widgets/clock/default.css similarity index 100% rename from public/desktop_widgets/4fa7810ac88514014d7c59bc/temp/clock.css rename to public/desktop_widgets/clock/default.css diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_blue.png b/public/desktop_widgets/clock/images/bg_blue.png similarity index 100% rename from public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_blue.png rename to public/desktop_widgets/clock/images/bg_blue.png diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_green.png b/public/desktop_widgets/clock/images/bg_green.png similarity index 100% rename from public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_green.png rename to public/desktop_widgets/clock/images/bg_green.png diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_orange.png b/public/desktop_widgets/clock/images/bg_orange.png similarity index 100% rename from public/desktop_widgets/4fa7810ac88514014d7c59bc/img/bg_orange.png rename to public/desktop_widgets/clock/images/bg_orange.png diff --git a/public/desktop_widgets/4fa7810ac88514014d7c59bc/4fa7810ac88514014d7c59bc.js b/public/desktop_widgets/clock/javascripts/clock.js similarity index 100% rename from public/desktop_widgets/4fa7810ac88514014d7c59bc/4fa7810ac88514014d7c59bc.js rename to public/desktop_widgets/clock/javascripts/clock.js diff --git a/public/desktop_widgets/clock/settings.json b/public/desktop_widgets/clock/settings.json new file mode 100644 index 000000000..8aa41d20f --- /dev/null +++ b/public/desktop_widgets/clock/settings.json @@ -0,0 +1,7 @@ +{ + "author" : "Harry", + "name" : "Clock", + "shape" : "w2 h1", + "version" : "1.0" + +} diff --git a/public/desktop_widgets/clock/widget.html b/public/desktop_widgets/clock/widget.html new file mode 100755 index 000000000..aeb6a444f --- /dev/null +++ b/public/desktop_widgets/clock/widget.html @@ -0,0 +1,5 @@ + +
+ \ No newline at end of file diff --git a/public/desktop_widgets/weather/default.css b/public/desktop_widgets/weather/default.css new file mode 100644 index 000000000..ef65207d4 --- /dev/null +++ b/public/desktop_widgets/weather/default.css @@ -0,0 +1,26 @@ +.g_weather { position: relative; height: 198px; } + .g_weather img { float: left; display: block; margin: 0; padding: 12px; } + .g_weather .gw_recent { + overflow: hidden; + height: 96%; + padding-top: 4%; + } + .g_weather .gw_weekly { display: none; } + .g_weather .gw_location { + position: absolute; + left: 0; + bottom: 0; + font-size: 15px; + line-height: 20px; + } + .g_weather .gw_condition_des { font-size: 22px; } + .g_weather .gw_temp { margin-top: 26px; } + .g_weather .gw_temp_num { font-size: 56px; } + .g_weather .gw_temp_unit { font-size: 26px; } + .g_weather .gw_forecast { + position: absolute; + right: 0; + bottom: 0; + font-size: 13px; + line-height: 20px; +} \ No newline at end of file diff --git a/public/desktop_widgets/4fa7817cc88514014d7c59c2/img/sunny.png b/public/desktop_widgets/weather/images/sunny.png similarity index 100% rename from public/desktop_widgets/4fa7817cc88514014d7c59c2/img/sunny.png rename to public/desktop_widgets/weather/images/sunny.png diff --git a/public/desktop_widgets/4fa7817cc88514014d7c59c2/4fa7817cc88514014d7c59c2.js b/public/desktop_widgets/weather/javascripts/weather.js similarity index 100% rename from public/desktop_widgets/4fa7817cc88514014d7c59c2/4fa7817cc88514014d7c59c2.js rename to public/desktop_widgets/weather/javascripts/weather.js diff --git a/public/desktop_widgets/weather/settings.json b/public/desktop_widgets/weather/settings.json new file mode 100644 index 000000000..67e5a3788 --- /dev/null +++ b/public/desktop_widgets/weather/settings.json @@ -0,0 +1,7 @@ +{ + "author" : "Devin", + "name" : "Weather", + "shape" : "w2 h2", + "version" : "0.0" + +} diff --git a/public/desktop_widgets/weather/widget.html b/public/desktop_widgets/weather/widget.html new file mode 100644 index 000000000..8cc412f24 --- /dev/null +++ b/public/desktop_widgets/weather/widget.html @@ -0,0 +1,17 @@ +
+
+ sunny +
+ 29°C +
+
Sunny
+
+
+ weekly report +
+
Hsin-Chu
+ > Weekly Report +
+ \ No newline at end of file