Quellcode durchsuchen

There is now a downloadable free trial for Luminotes Desktop. Also made export plugins work on Windows.

master
Dan Helfman vor 10 Jahren
Ursprung
Commit
81388ed36b
12 geänderte Dateien mit 111 neuen und 22 gelöschten Zeilen
  1. +2
    -1
      NEWS
  2. +1
    -0
      config/Version.py
  3. +3
    -1
      controller/Root.py
  4. +2
    -3
      plugins/Invoke.py
  5. +3
    -0
      plugins/__init__.py
  6. +7
    -1
      setup.py
  7. +11
    -0
      static/css/product.css
  8. +7
    -0
      static/css/style.css
  9. BIN
      static/images/trial_button.png
  10. BIN
      static/images/trial_button.xcf
  11. +62
    -12
      view/Download_page.py
  12. +13
    -4
      view/Header.py

+ 2
- 1
NEWS Datei anzeigen

@@ -1,4 +1,4 @@
1.6.7: ?
1.6.7: February 23, 2009
* When you export your notebook as an HTML or CSV file, the saved filename is
now based on the name of your notebook, for instance "my-to-do-list.html"
or "ideas-for-my-novel.csv".
@@ -6,6 +6,7 @@
* Converted the existing HTML and CSV export features to work as separate
export plugins. This means that a new export format can be implemented as
a new plugin.
* There is now a downloadable free trial for Luminotes Desktop!

1.6.6: February 16, 2009
* Luminotes now recognizes "mailto:" links as external links, so you can

+ 1
- 0
config/Version.py Datei anzeigen

@@ -1 +1,2 @@
VERSION = u"1.6.7"
TRIAL = True

+ 3
- 1
controller/Root.py Datei anzeigen

@@ -361,7 +361,9 @@ class Root( object ):
result[ "first_notebook" ] = None

result[ "download_products" ] = self.__settings[ u"global" ].get( u"luminotes.download_products" )
result[ "upgrade" ] = upgrade

referer = cherrypy.request.headerMap.get( u"Referer" )
result[ "upgrade" ] = upgrade or ( referer and u"localhost:" in referer )

return result


+ 2
- 3
plugins/Invoke.py Datei anzeigen

@@ -3,8 +3,7 @@ import plugins

def invoke( plugin_type, plugin_name, *args, **kwargs ):
plugin_name = u"%s_%s" % ( plugin_type, plugin_name )
plugin_location = imp.find_module( plugin_name, plugins.__path__ )
plugin_module = imp.load_module( plugin_name, *plugin_location )

plugin_module = getattr( plugins, plugin_name )
function = getattr( plugin_module, plugin_type )

return apply( function, args, kwargs )

+ 3
- 0
plugins/__init__.py Datei anzeigen

@@ -0,0 +1,3 @@
# for the benefit of py2exe
import export_html
import export_csv

+ 7
- 1
setup.py Datei anzeigen

@@ -1,6 +1,7 @@
#!/usr/bin/python

import os
import os.path
import sys
from glob import glob
from distutils.core import setup, Distribution
@@ -148,6 +149,11 @@ class InnoScript:
print >> ofi, r"end;"

def compile(self):
import os
if os.environ.get( "CYGWIN" ):
print "Running in Cygwin, so skipping compile"
return

try:
import ctypes
except ImportError:
@@ -276,7 +282,7 @@ setup(
options = dict(
py2exe = dict(
packages = "cherrypy.filters",
includes = "email.header,simplejson",
includes = "email.header,simplejson,plugins.*",
compressed = 1,
optimize = 2,
)

+ 11
- 0
static/css/product.css Datei anzeigen

@@ -498,6 +498,11 @@
padding-bottom: 0.5em;
}

.trial_button_area {
padding-top: 1em;
padding-bottom: 0.5em;
}

.download_button_area {
padding-top: 1em;
padding-bottom: 0.5em;
@@ -543,3 +548,9 @@
margin-bottom: 0.5em;
border: 1px solid #999999;
}

.tiny_text {
font-size: 60%;
line-height: 140%;
font-weight: normal;
}

+ 7
- 0
static/css/style.css Datei anzeigen

@@ -1233,3 +1233,10 @@ h1 {
font-size: 72%;
font-weight: normal;
}

.trial_upgrade_link {
font-weight: bold;
background-color: #ffcc66;
padding: 0.5em;
font-size: 110%;
}

BIN
static/images/trial_button.png Datei anzeigen

Vorher Nachher
Breite: 107  |  Höhe: 26  |  Größe: 2.6KB

BIN
static/images/trial_button.xcf Datei anzeigen


+ 62
- 12
view/Download_page.py Datei anzeigen

@@ -8,7 +8,7 @@ class Download_page( Product_page ):
MEGABYTE = 1024 * 1024

# for now, just assume there's a single download package
download_button = download_products[ 0 ].get( "button" )
download_button = download_products[ 0 ].get( "button" ).strip()
news_url = u"http://luminotes.com/hg/luminotes/file/%s/NEWS" % VERSION

Product_page.__init__(
@@ -66,14 +66,16 @@ class Download_page( Product_page ):
class_ = u"version_text",
),
class_ = u"plan_name_area download_plan_width",
)
colspan = "2",
),
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
Span( u"Solo", class_ = u"highlight" ), u"note taking",
title = u"Luminotes Desktop is designed for individuals.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -81,6 +83,7 @@ class Download_page( Product_page ):
u"Runs on your", Span( u"own computer", class_ = u"highlight" ),
title = u"All of your notes are stored privately on your own computer or on a USB drive.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -88,6 +91,7 @@ class Download_page( Product_page ):
Span( u"Unlimited", class_ = u"highlight" ), u"storage",
title = u"Add as many notes, documents, and files as you want.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -95,30 +99,57 @@ class Download_page( Product_page ):
u"Works", Span( "offline", class_ = u"highlight" ),
title = u"Take notes in meetings, in class, or while on the go. Runs in a web browser, but doesn't need an internet connection.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
u"Windows XP/Vista,", A( u"Linux source", href = u"/source_code" ),
class_ = u"small_text",
colspan = "2",
),
),
Tr(
Td(
u"Firefox 2+, Internet Explorer 7+, Chrome 1+, Safari 3+",
class_ = u"small_text",
colspan = "2",
),
),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
( not upgrade ) and Td(
Div(
A(
Img(
src = u"/static/images/trial_button.png",
width = u"107", height = u"26",
alt = u"download trial",
),
href = "/static/luminotes.exe",
),
Div(
u"Completely free",
class_ = u"tiny_text",
),
class_ = u"trial_button_area",
),
colspan = download_button and "1" or "2",
) or None,
download_button and Td(
Div(
download_button,
Div(
u"Fast and secure",
class_ = u"tiny_text",
),
class_ = u"download_button_area",
),
),
colspan = upgrade and "2" or "1",
) or None,
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
border = u"1",
id = u"upgrade_table",
),
@@ -165,12 +196,15 @@ class Download_page( Product_page ):
H4( u"Can I try before I buy?", class_ = u"upgrade_question" ),
P(
"""
Sure! Just check out the full-featured
Sure! Just
""",
A( u"download the full-featured free trial", href = "/static/luminotes.exe" ),
"""
or check out the
""",
A( u"online demo", href = "/users/demo" ),
"""
to see Luminotes for yourself. The only difference is that Luminotes Desktop runs in
a browser on your own computer instead of on the web.
to see Luminotes for yourself.
""",
class_ = u"upgrade_text",
),
@@ -221,15 +255,31 @@ class Download_page( Product_page ):
Th(
Span( u"Luminotes Desktop", class_ = u"plan_name" ),
class_ = u"plan_name_area",
colspan = "2",
)
),
Tr(
Td(
( not upgrade ) and Td(
Div(
A(
Img(
src = u"/static/images/trial_button.png",
width = u"107", height = u"26",
alt = u"download trial",
),
href = "/static/luminotes.exe",
),
class_ = u"trial_button_area",
),
colspan = download_button and "1" or "2",
) or None,
download_button and Td(
Div(
download_button,
class_ = u"download_button_area",
),
),
colspan = upgrade and "2" or "1",
) or None,
),
id = u"upgrade_table_small",
),

+ 13
- 4
view/Header.py Datei anzeigen

@@ -1,5 +1,5 @@
from Tags import Div, A, Img, Span
from config.Version import VERSION
from Tags import Div, A, Img, Span, B
from config.Version import VERSION, TRIAL

class Header( Div ):
def __init__( self, user, first_notebook, login_url, logout_url, note_title, rate_plan = None ):
@@ -9,6 +9,15 @@ class Header( Div ):
alt = u"Luminotes",
)

trial_expired = False
if TRIAL:
from pytz import utc
from datetime import datetime, timedelta
trial_age = datetime.now( tz = utc ) - first_notebook.revision
if trial_age > timedelta( days = 30 ):
trial_expired = True

if rate_plan and rate_plan.get( u"name" ) == u"desktop":
Div.__init__(
self,
@@ -16,8 +25,8 @@ class Header( Div ):
( note_title == u"home" ) and title_image or
A( title_image, href = u"http://luminotes.com/", target = "_new" ),
Div(
u"version", VERSION, u" | ",
A( u"upgrade", href = u"http://luminotes.com/download?upgrade=True", target = "_new" ), u" | ",
( TRIAL and u"trial" or u"" ), u"version", VERSION, u" | ",
A( u"upgrade", href = u"http://luminotes.com/download", target = "_new", class_ = trial_expired and "trial_upgrade_link" or u"" ), u" | ",
A( u"community", href = u"http://luminotes.com/community", target = "_new" ), u" | ",
A( u"blog", href = u"http://luminotes.com/blog/", target = "_new" ), u" | ",
A( u"close", href = u"/close" ),

Laden…
Abbrechen
Speichern