Beispiel #1
0
    def __init__(self, support_email):
        title = u"404"
        header_image = Div(
            A(Img(src=u"/static/images/luminotes_title_full.png",
                  width=u"206",
                  height=u"69"),
              href=u"/",
              alt=u"Luminotes personal wiki notebook"),
            class_=u"error_header",
        )

        Page.__init__(
            self,
            title,
            header_image,
            Div(
                H2(title),
                P(
                    u"Sorry, the page you are looking for couldn't be found. But not to worry. You've got a few options.",
                    Ul(
                        Li(u"Return to the",
                           A(u"Luminotes personal wiki notebook", href=u"/"),
                           u"home page."),
                        Li(
                            A(u"Contact support",
                              href=u"mailto:%s" % support_email),
                            u"and report that the page you expected to find here is missing."
                        ),
                    ),
                ),
                class_=u"error_box",
            ),
        )
Beispiel #2
0
    def __init__(self, support_email, message=None):
        header_image = Div(
            A(Img(src=u"/static/images/luminotes_title_full.png",
                  width=u"206",
                  height=u"69"),
              href=u"/",
              alt=u"Luminotes personal wiki notebook"),
            class_=u"error_header",
        )

        if message:
            title = u"whoops"
            Page.__init__(
                self,
                title,
                header_image,
                Div(
                    H2(title),
                    P(message),
                    class_=u"error_box",
                ),
            )
            return

        title = u"uh oh"
        Page.__init__(
            self,
            title,
            header_image,
            Div(
                H2(title),
                Noscript(
                    P(
                        Strong(
                            u"""
              Please enable JavaScript in your web browser. JavaScript is necessary for many Luminotes
              features to work properly.
              """, ), ), ),
                P(
                    u"Something went wrong! If you care, please",
                    A("let me know about it.",
                      href="mailto:%s" % support_email),
                    u"Be sure to include the following information:",
                ),
                Ul(
                    Li(u"the series of steps you took to produce this error"),
                    Li(u"the time of the error"),
                    Li(u"the name of your web browser and its version"),
                    Li(u"any other information that you think is relevant"),
                ),
                P(u"Thanks!", ),
                class_=u"error_box",
            ),
        )
Beispiel #3
0
  def __init__( self, user, notebooks, first_notebook, login_url, logout_url, rate_plan, groups ):
    Product_page.__init__(
      self,
      user,
      first_notebook,
      login_url,
      logout_url,
      u"forums", # note title

      Div(
        Div(
          Img(
            src = u"/static/images/forums.png",
            width = u"335", height = u"47",
            alt = u"Discussion Forums",
          ),
        ),
        Div(
          Span( A( u"general discussion", href = u"/forums/general/" ), class_ = u"forum_title" ),
          P(
            u"""
            Swap tips about making the most out of your personal wiki, and discuss your ideas for
            new Luminotes features and enhancements.
            """
          ),
          Span( A( u"technical support", href = u"/forums/support/" ), class_ = u"forum_title" ),
          P( u"Having a problem with your wiki? Something not working as expected? Ask about it here." ),
          class_ = u"forums_text",
        ),
        class_ = u"forums_area", 
      ),

      Div(
        P(
          Span( u"Need more help?", class_ = u"hook_action_question" ), Br(),
          A( u"Contact support directly", href = u"/contact_info", class_ = u"hook_action" ),
          class_ = u"hook_action_area",
          separator = u"",
        ),
        class_ = u"center_area",
      ),
    )
Beispiel #4
0
 def button_row(self, rate_plans, user, yearly=False):
     return Tr(
       [ Td(
         Div(
           # 1 = modifying an existing subscription, 0 = new subscription
           user and user.username not in ( u"anonymous", None ) and user.rate_plan != index \
                and ( yearly and ( plan.get( u"yearly_button" ) and plan.get( u"yearly_button" ).strip() and
                                   plan.get( u"yearly_button" ) % ( user.object_id, user.rate_plan and 1 or 0 ) or None ) or \
                                 ( plan.get( u"button" ) and plan.get( u"button" ).strip() and
                                   plan.get( u"button" ) % ( user.object_id, user.rate_plan and 1 or 0 ) or None ) ) or None,
           ( not user or user.username in ( u"anonymous", None ) ) and A(
               Img( src = u"/static/images/sign_up_button.png", width = "76", height = "23" ),
               href = u"/sign_up?plan=%s&yearly=%s" % ( index, yearly ),
           ) or None,
           class_ = u"subscribe_button_area",
         ),
         ( user.rate_plan == 0 ) and Div( ( index > 0 ) and "30-day free trial" or " ", class_ = u"small_text" ) or None,
         class_ = ( index == self.FOCUSED_PLAN and u"focused_feature_value" or u"" ),
        ) for ( index, plan ) in enumerate( rate_plans ) ],
     )
 def __init__(self, file_id, filename, quote_filename):
     Html.__init__(
         self,
         Head(Title(filename), ),
         Body(
             A(
                 Img(src=u"/files/image?file_id=%s" % file_id,
                     style="border: 0;"),
                 href=
                 u"/files/download?file_id=%s&quote_filename=%s&preview=False"
                 % (file_id, quote_filename),
             ),
             Div(
                 A(
                     u"download %s" % filename,
                     href=
                     u"/files/download?file_id=%s&quote_filename=%s&preview=False"
                     % (file_id, quote_filename),
                 ), ),
         ),
     )
Beispiel #6
0
    def __init__(
        self,
        user,
        notebooks,
        first_notebook,
        login_url,
        logout_url,
        rate_plan,
        groups,
        forum_name,
        threads,
        total_thread_count,
        start=0,
        count=None,
    ):
        base_path = cherrypy.request.path
        updates_path = "%s?rss" % base_path

        if forum_name == u"blog":
            full_forum_name = u"Luminotes %s" % forum_name
        else:
            full_forum_name = u"%s forum" % forum_name

        Product_page.__init__(
          self,
          user,
          first_notebook,
          login_url,
          logout_url,
          full_forum_name, # note title
          Link( rel = u"alternate", type = u"application/rss+xml", title = full_forum_name, href = updates_path ) or None,

          P(
            H1( full_forum_name ),
          ),
          Div(
            P(
              base_path.startswith( u"/forums/" ) and Span(
                B( A( u"start a new discussion", href = os.path.join( base_path, u"create_thread" ) ) ),
                u" | ",
                A( u"all forums", href = u"/forums/" ),
                u" | ",
              ) or None,
              A( u"subscribe to rss", href = updates_path ),
              A(
                Img( src = u"/static/images/rss.png", width = u"14", height = u"14", class_ = u"middle_image padding_left" ),
                href = updates_path,
              ),
              class_ = u"small_text",
            ) or None,
            [ Div(
              A(
                thread.name,
                href = ( forum_name == u"blog" ) and \
                  os.path.join( base_path, thread.friendly_id ) or \
                  "%s?posts=%s" % ( os.path.join( base_path, thread.object_id ), thread.note_count ),
              ),
              Span(
                self.post_count( thread, forum_name ),
                class_ = u"small_text",
              )
            ) for thread in threads ],
            class_ = u"forum_threads",
          ),
          Page_navigation( base_path, len( threads ), total_thread_count, start, count ),
        )
Beispiel #7
0
 def __init__(self, user, notebooks, first_notebook, login_url, logout_url,
              rate_plan, groups):
     Product_page.__init__(
         self,
         user,
         first_notebook,
         login_url,
         logout_url,
         u"home",  # note title
         Div(
             Div(
                 Div(
                     A(
                         Img(src=u"/static/images/screenshot_small.png",
                             width=u"400",
                             height=u"308"),
                         href=u"/tour",
                     ),
                     class_=u"front_screenshot",
                 ),
                 Div(
                     Div(
                         Img(
                             src=u"/static/images/hook.png",
                             width=u"400",
                             height=u"51",
                             alt=u"Collect your thoughts.",
                         ), ),
                     P(
                         Img(
                             src=u"/static/images/sub_hook.png",
                             width=u"307",
                             height=u"54",
                             alt=
                             u"Get organized with your own Luminotes personal wiki notebook.",
                         ), ),
                     Table(
                         Td(
                             Li(u"Gather all of your ideas into one place."
                                ),
                             Li(u"Easily link together related concepts."),
                             Li(u"As simple to use as index cards."),
                             align=u"left",
                         ),
                         align=u"center",
                     ),
                     P(
                         A(u"Take a tour",
                           href=u"/tour",
                           class_=u"hook_action"),
                         u", ",
                         A(u"Download",
                           href=u"/download",
                           class_=u"hook_action"),
                         u", ",
                         Span(u" or ", class_=u"hook_action_or"),
                         A(u"Sign up",
                           href=u"/pricing",
                           class_=u"hook_action"),
                         class_=u"hook_action_area",
                         separator=u"",
                     ),
                     class_=u"explanation",
                 ),
                 class_=u"wide_center_area",
             ),
             class_=u"hook_area",
         ),
         Div(
             Div(
                 Div(
                     Img(
                         src=u"/static/images/quotes.png",
                         class_=u"heading",
                         width=u"253",
                         height=u"31",
                         alt=u"What people are saying",
                     ), ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"Luminotes is a wiki without the markup learning curve.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           ... Luminotes has you simply start typing, using familiar rich text buttons to add bullets and other styling, and a simple linking and tagging system for your notes."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Kevin Purdy, ",
                         A(u"Review on Lifehacker",
                           href=
                           u"http://lifehacker.com/386813/luminotes-is-a-wiki-without-the-markup-learning-curve"
                           ),
                         class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"Imagine an application that combines the features of a wiki and a web-based notebook.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           ... as a multi-user notebook that allows you to quickly take notes and collaborate on them with other users, Luminotes is unbeatable."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Dmitri Popov, ",
                         A(u"Review on Linux.com",
                           href=u"http://www.linux.com/feature/132297"),
                         class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"As soon as I saw Luminotes I knew it was what I and my students needed.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           Clear, easy to use and beautifully simple."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Jonathan Lecun, Director, ",
                         A(u"UK Teachers Online",
                           href=u"http://www.ukteachersonline.co.uk/"),
                         class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"Luminotes has saved me an immense amount of time with my current novel.",
                             class_=u"quote_title",
                         ),
                         u"""
           No more digging through mounds of text or trying to make sense of notes scrawled on random pages of my notebook months ago."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(
                         u"Michail Velichansky, Writer",
                         class_=u"quote_signature",
                     ),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"What I love most about Luminotes is the ",
                             I(u"simplicity"),
                             u" of it.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           Maybe I have a touch of ADD, but I get so distracted with other products and
           all the gadgets, bells, and whistles they offer. I spend more time fiddling
           with the features than actually working. Luminotes, for me, recreates the old
           index card method we all used for term papers in high school."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Michael Miller, President & CEO, Mighty Hero Entertainment, Inc.",
                         class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"I'm a wiki addict, so I've tried most of them, desktop and web-based.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           What I like about your excellent product is the modeless editing (no edit
           and save buttons). This makes Luminotes the fastest web-based wiki I have
           used."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Scott Tiner, Technical Writer",
                         class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"I came across your software using the WikiMatrix comparison and fell in love instantly.",
                             class_=u"quote_title",
                             separator=u"",
                         ),
                         u"""
           This is probably the best personal wiki software I have seen to date. Playing with
           the demo sold me completely. The design, interface, usage, and above all how bloody
           easy it is is perfect."
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(u"-Kyle Gruel", class_=u"quote_signature"),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"Marvelous! Simply marvelous!",
                             class_=u"quote_title",
                         ),
                         u"""
           Very simple to use, and I can access it from any computer. Great idea!"
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(
                         u"-Lydia Newkirk",
                         class_=u"quote_signature",
                     ),
                     class_=u"quote",
                 ),
                 Div(
                     Div(
                         u'"',
                         Span(
                             u"I just wanted to thank you for the great work with Luminotes!",
                             class_=u"quote_title",
                         ),
                         u"""
           I use it both at home and at work, and it's a big help!"
           """,
                         class_=u"quote_text",
                         separator=u"",
                     ),
                     Div(
                         u"-Brian M.B. Keaney",
                         class_=u"quote_signature",
                     ),
                     class_=u"quote",
                 ),
                 class_=u"quotes_area",
             ),
             Div(
                 Img(
                     src=u"/static/images/what_is_luminotes.png",
                     class_=u"heading",
                     width=u"214",
                     height=u"29",
                     alt=u"What is Luminotes?",
                 ),
                 Div(
                     P(
                         u"""
           Luminotes is a WYSIWYG personal wiki notebook for organizing your notes and ideas.
           It's designed for note taking and note keeping without the hassle
           of learning special markup codes. You simply start typing.
           """, ),
                     Table(
                         Tr(
                             Td(
                                 A(
                                     Img(src=
                                         u"/static/images/wysiwyg_thumb.png",
                                         width=u"175",
                                         height="100",
                                         class_=u"thumbnail"),
                                     href=u"/tour",
                                 ),
                                 Div(u"Create a wiki visually",
                                     class_=u"thumbnail_caption"),
                                 Div(u"Make a wiki as easily as writing a document.",
                                     class_=u"thumbnail_caption_detail"),
                                 class_=u"thumbnail_cell",
                             ),
                             Td(
                                 A(
                                     Img(src=
                                         u"/static/images/connect_thumb.png",
                                         width=u"175",
                                         height="100",
                                         class_=u"thumbnail"),
                                     href=u"/tour",
                                 ),
                                 Div(u"Link your notes together",
                                     class_=u"thumbnail_caption"),
                                 Div(u"Connect your thoughts with links between notes.",
                                     class_=u"thumbnail_caption_detail"),
                                 class_=u"thumbnail_cell",
                             ),
                         ),
                         Tr(
                             Td(
                                 A(
                                     Img(src=
                                         u"/static/images/download_thumb.png",
                                         width=u"175",
                                         height="100",
                                         class_=u"thumbnail"),
                                     href=u"/tour",
                                 ),
                                 Div(u"Take your wiki to go",
                                     class_=u"thumbnail_caption"),
                                 Div(u"Download your wiki as a web page or spreadsheet.",
                                     class_=u"thumbnail_caption_detail"),
                                 class_=u"thumbnail_cell",
                             ),
                             Td(
                                 A(
                                     Img(src=
                                         u"/static/images/share_thumb.png",
                                         width=u"175",
                                         height="100",
                                         class_=u"thumbnail"),
                                     href=u"/tour",
                                 ),
                                 Div(u"Share your thoughts",
                                     class_=u"thumbnail_caption"),
                                 Div(u"Invite friends and colleagues to collaborate.",
                                     class_=u"thumbnail_caption_detail"),
                                 class_=u"thumbnail_cell",
                             ),
                         ),
                         class_=u"thumbnail_area",
                     ),
                     P(u"What can you do with Luminotes?", ),
                     Ul(
                         Li(u"Outline a story"),
                         Li(u"Plan a trip"),
                         Li(u"Collect recipes"),
                         Li(u"Record your ideas"),
                         Li(u"Keep track of your tasks"),
                         Li(u"Take notes"),
                         class_=u"compact_list",
                     ),
                     P(
                         u"""
           Luminotes is open source / free software and licensed under the terms of the
           GNU GPL.
           """, ),
                     class_=u"what_is_luminotes_text",
                 ),
                 Div(
                     P(
                         Span(u"Sound interesting?",
                              class_=u"hook_action_question"),
                         Br(),
                         A(u"Take a tour",
                           href=u"/tour",
                           class_=u"hook_action"),
                         u", ",
                         A(u"Download",
                           href=u"/download",
                           class_=u"hook_action"),
                         u", ",
                         Span(u" or ", class_=u"hook_action_or"),
                         A(u"Sign up",
                           href=u"/pricing",
                           class_=u"hook_action"),
                         class_=u"hook_action_area",
                         separator=u"",
                     ), ),
                 class_=u"what_is_luminotes_area",
             ),
             class_=u"wide_center_area",
         ),
         P(
             Span(id=u"buttons_preload"),
             Span(id=u"themes_default_buttons_preload"),
         ),
     )
  def __init__( self, user, notebooks, first_notebook, login_url, logout_url, rate_plan, groups, download_products, upgrade = False ):
    MEGABYTE = 1024 * 1024

    # for now, just assume there's a single download package
    news_url = u"http://luminotes.com/hg/luminotes/file/%s/NEWS" % VERSION

    Product_page.__init__(
      self,
      user,
      first_notebook,
      login_url,
      logout_url,
      u"download", # note title

      Script( type = u"text/javascript", src = u"/static/js/MochiKit.js?%s" % VERSION ),

      Div(
        Div(
          H1(
            Img(
              src = u"/static/images/download.png",
              width = u"181", height = u"41",
              alt = u"download",
            ),
          ),
          P(
            u"Install Luminotes on your computer.",
            class_ = u"upgrade_subtitle",
          ),
          Div(
            upgrade and Div(
              P(
                B( "Upgrading:" ),
                u"""
                If you already have Luminotes Desktop and would like to upgrade to a newer
                version, simply download and install it. All of your notes will be preserved.
                """,
                A( "Check out what's new in version %s" % VERSION, href = news_url ),
              ),
              P(
                u"Need help? Please",
                A( u"contact support", href = u"/contact_info" ),
                u"for assistance.",
              ),
              class_ = u"upgrade_text",
            ) or None,
            Div(
              Img( src = u"/static/images/installer_screenshot.png", width = u"350", height = u"273" ),
              class_ = u"desktop_screenshot",
            ),
            P(
              Table(
                Tr(
                  Th(
                    Span( u"Luminotes Desktop", class_ = u"plan_name" ),
                    Div(
                      A( "version", VERSION, href = news_url ),
                      class_ = u"version_text",
                    ),
                    class_ = u"plan_name_area download_plan_width",
                    colspan = "2",
                  ),
                ),
                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(
                  Td(
                    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(
                  Td(
                    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(
                  Td(
                    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( 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(
                    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 = "1",
                  ) or None,
                ),
                Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
                border = u"1",
                id = u"upgrade_table",
              ),
              class_ = u"upgrade_table_area",
            ),
            class_ = u"wide_center_area",
          ),
          Div(
            u"Don't want to install anything? Need collaboration features? ",
            A( u"Use Luminotes online", href = u"/pricing" ),
            u".",
            class_ = u"small_text luminotes_online_link_area",
            separator = u"",
          ),

          class_ = u"upgrade_area",
        ),

        Div(
          Div(
            H4( u"Is my wiki private?", class_ = u"upgrade_question" ),
            P(
              u"""
              Absolutely. With Luminotes Desktop, your notes are stored locally on your own
              computer, not on the web. There is also a complete
              """,
              A( u"Luminotes privacy policy", href = "/privacy" ),
              u"""
              so please check that out if you're interested in how Luminotes
              protects your privacy.
              """,
              class_ = u"upgrade_text",
            ),
            H4( u"Can I run Luminotes Desktop from a USB flash drive?", class_ = u"upgrade_question" ),
            P(
              """
              Yes! You can keep your wiki in your pocket by running Luminotes Desktop directly from
              a USB flash drive. Full instructions are included with the download.
              """,
              class_ = u"upgrade_text",
            ),
            H4( u"What happens to my wiki if I stop using Luminotes?", class_ = u"upgrade_question" ),
            P(
              """
              There is no lock-in with Luminotes. You can export your entire wiki to a stand-alone web page or a CSV spreadsheet — anytime you like.
              """,
              class_ = u"upgrade_text",
            ),
            class_= u"wide_center_area",
          ),

          P(
            Table(
              Tr(
                Th(
                  Span( u"Luminotes Desktop", class_ = u"plan_name" ),
                  class_ = u"plan_name_area",
                  colspan = "2",
                )
              ),
              Tr(
                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 = "1",
                ),
              ),
              id = u"upgrade_table_small",
            ),
            class_= u"upgrade_table_area",
          ),

          Div(
            P(
              Span( u"Have a question?", class_ = u"hook_action_question" ), Br(),
              A( u"Contact support", href = u"/contact_info", class_ = u"hook_action" ),
              class_ = u"hook_action_area",
              separator = u"",
            ),
            class_ = u"center_area",
          ),

          class_ = u"wide_center_area",
        ),
      ),
    )
Beispiel #9
0
    def __init__(self, user, notebooks, first_notebook, login_url, logout_url,
                 rate_plan, groups, rate_plans, unsubscribe_button):
        MEGABYTE = 1024 * 1024
        rate_plans = list(rate_plans)[0:1]  # only the free rate plan is shown

        Product_page.__init__(
            self,
            user,
            first_notebook,
            login_url,
            logout_url,
            u"pricing",  # note title
            Script(type=u"text/javascript",
                   src=u"/static/js/MochiKit.js?%s" % VERSION),
            Div(
                Div(
                    user and user.username not in (None, u"anonymous") and H1(
                        Img(
                            src=u"/static/images/upgrade.png",
                            width=u"152",
                            height=u"51",
                            alt=u"upgrade",
                        ), ) or H1(
                            Img(
                                src=u"/static/images/sign_up.png",
                                width=u"138",
                                height=u"51",
                                alt=u"sign up",
                            ), ),
                    P(
                        Table(
                            self.fee_row(rate_plans, user),
                            self.spacer_row(rate_plans),
                            Tr([
                                Td(
                                    (plan[u"included_users"] == 1) and Span(
                                        Span(u"Single", class_=u"highlight"),
                                        u"user",
                                        title=
                                        u"This plan includes one user account, so it's ideal for individuals."
                                    ) or Span(
                                        u"Up to",
                                        Span("%s" % plan[u"included_users"],
                                             class_=u"highlight"),
                                        u"users",
                                        title=
                                        "This plan includes multiple accounts, including an admin area where you can create and manage users for your organization."
                                    ),
                                    class_=u"feature_value" +
                                    (index == self.FOCUSED_PLAN
                                     and u" focused_feature_value" or u""),
                                ) for (index, plan) in enumerate(rate_plans)
                            ], ),
                            Tr([
                                Td(
                                    plan[u"storage_quota_bytes"]
                                    and Span("%s MB" %
                                             (plan[u"storage_quota_bytes"] //
                                              MEGABYTE),
                                             class_=u"highlight")
                                    or Span(u"unlimited", class_=u"highlight"),
                                    u"storage",
                                    title=
                                    u"Storage space for your notes, documents, and files.",
                                    class_=u"feature_value" +
                                    (index == self.FOCUSED_PLAN
                                     and u" focused_feature_value" or u""),
                                ) for (index, plan) in enumerate(rate_plans)
                            ], ),
                            plan[u"notebook_sharing"] and Tr([
                                Td(
                                    plan[u"notebook_collaboration"] and Span(
                                        u"Invite",
                                        Span(u"editors", class_=u"highlight"),
                                        title=
                                        u"Invite people to collaborate on your wiki. Share only the notebooks you want. Keep the others private."
                                    ) or Span(
                                        u"Invite",
                                        Span(u"viewers", class_=u"highlight"),
                                        title=
                                        u"Invite people to view your wiki. Share only the notebooks you want. Keep the others private."
                                    ),
                                    class_=u"feature_value" +
                                    (index == self.FOCUSED_PLAN
                                     and u" focused_feature_value" or u""),
                                ) for (index, plan) in enumerate(rate_plans)
                            ], ) or None,
                            self.button_row(rate_plans, user),
                            self.spacer_row(rate_plans, bottom=True),
                            border=u"1",
                            id=u"upgrade_table",
                        ),
                        class_=u"upgrade_table_area",
                    ),
                    Div(
                        u"Don't want to take notes online? ",
                        A(u"Download Luminotes Desktop", href=u"/download"),
                        u".",
                        class_=u"small_text",
                        separator=u"",
                    ),
                    class_=u"upgrade_area",
                ),
                Div(
                    Div(
                        H4(u"Do you have a desktop version I can download?",
                           class_=u"upgrade_question"),
                        P(
                            u"""
              Yes! If you want to download Luminotes and take notes locally instead of on the web,
              check out
              """,
                            A(u"Luminotes Desktop", href="/download"),
                            ".",
                            separator=u"",
                            class_=u"upgrade_text",
                        ),
                        H4(u"Is my wiki private?", class_=u"upgrade_question"),
                        P(
                            u"""
              Absolutely. Your personal wiki is protected by industry-standard SSL encryption, and
              your wiki is never shared with anyone unless you explicitly invite them to view or
              edit it. There is a complete
              """,
                            A(u"Luminotes privacy policy", href="/privacy"),
                            u"""
              on the subject, so please check that out if you're interested in how Luminotes
              protects your privacy.
              """,
                            class_=u"upgrade_text",
                        ),
                        H4(u"Do you backup my wiki?",
                           class_=u"upgrade_question"),
                        P(
                            """
              Your wiki is fully backed up every day, and you can even download the entire contents
              of your wiki as a stand-alone web page or a CSV spreadsheet — anytime you like.
              """,
                            class_=u"upgrade_text",
                        ),
                        H4(u"What happens to my wiki if I stop using Luminotes?",
                           class_=u"upgrade_question"),
                        P(
                            """
              There is no lock-in with Luminotes. You can export your entire wiki to a stand-alone web page or a CSV spreadsheet — anytime you like.
              """,
                            class_=u"upgrade_text",
                        ),
                        class_=u"wide_center_area",
                    ),
                    Div(
                        P(
                            Span(u"Have a question before you sign up?",
                                 class_=u"hook_action_question"),
                            Br(),
                            A(u"Contact support",
                              href=u"/contact_info",
                              class_=u"hook_action"),
                            class_=u"hook_action_area",
                            separator=u"",
                        ),
                        class_=u"center_area",
                    ),
                    class_=u"wide_center_area",
                ),
            ),
        )
Beispiel #10
0
  def __init__( self, user, first_notebook, login_url, logout_url, note_title, rate_plan = None ):
    title_image = Img(
      src ="/static/images/luminotes_title.png",
      class_ = u"luminotes_title", width = u"193", height = u"60",
      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,
        Div(
          ( note_title == u"home" ) and title_image or
            A( title_image, href = u"http://luminotes.com/", target = "_new" ),
          Div(
            ( 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" ),
            class_ = u"header_links",
          ),
          class_ = u"wide_center_area",
        ),
        id = u"header",
        class_ = u"header",
      )
      return

    Div.__init__(
      self,
      Div(
        ( note_title == u"home" ) and title_image or A( title_image, href = u"/" ),   
        ( login_url and user.username == u"anonymous" ) and Div(
          A(
            u"login",
            href = login_url,
            id = u"login_link",
            class_ = u"bold_link",
          ),
          class_ = u"header_user_links",
        ) or Div(
          u"logged in as %s" % ( user.username or u"a guest" ),
          u" | ",
          ( note_title != u"wiki" ) and first_notebook and Span(
            A(
              u"my wiki",
              href = u"/notebooks/%s" % first_notebook.object_id,
            ),
            u" | ",
          ) or None,
          user.username and note_title == u"wiki" and Span(
            A(
              u"settings",
              href = u"#",
              title = u"Update your account settings.",
              id = u"settings_link",
            ),
            " | ",
          ) or None,
          A(
            u"logout",
            href = logout_url,
            id = u"logout_link",
            title = u"Sign out of your account.",
          ),
          class_ = u"header_user_links",
        ),
        Div(
          ( note_title == u"home" ) and Span( u"home", class_ = u"bold_link" ) or A( u"home", href = u"/" ), u" | ",
          ( note_title == u"tour" ) and Span( u"tour", class_ = u"bold_link" ) or A( u"tour", href = u"/tour" ), u" | ",
          ( user.username in ( None, u"anonymous" ) ) and Span( ( note_title == u"wiki" ) and Span( u"demo", class_ = u"bold_link" ) or A( u"demo", href = u"/users/demo" ), u" | " ) or None,
          ( note_title == u"community" ) and Span( u"community", class_ = u"bold_link" ) or A( u"community", href = u"/community" ), u" | ",
          ( note_title == u"download" ) and Span( u"download", class_ = u"bold_link" ) or \
          A(
            u"download",
            href = u"/download",
            title = u"Download Luminotes to run on your own computer.",
            class_ = u"bold_link",
          ),
          " | ",
          ( user.username and user.username != u"anonymous" ) and Span(
            A(
              u"upgrade",
              href = u"/pricing",
              title = u"Upgrade your Luminotes account.",
              class_ = u"bold_link",
            ),
          ) or Span(
            ( note_title == u"pricing" ) and Span( u"sign up", class_ = u"bold_link" ) or \
            A(
              u"sign up",
              href = u"/pricing",
              title = u"Sign up for an online Luminotes account.",
              class_ = u"bold_link",
            ),
          ) or None,

          #( note_title == u"support" ) and Span( u"support", class_ = u"bold_link" ) or A( u"support", href = u"/support" ), u" | ",
          #( note_title == u"team" ) and Span( u"team", class_ = u"bold_link" ) or A( u"team", href = u"/meet_the_team" ), u" | ",
          #( note_title == u"blog" ) and Span( u"blog", class_ = u"bold_link" ) or A( u"blog", href = u"/blog" ), u" | ",
          #( note_title == u"privacy" ) and Span( u"privacy", class_ = u"bold_link" ) or A( u"privacy", href = u"/privacy" ),
          class_ = u"header_links",
        ),
        class_ = u"wide_center_area",
      ),
      id = u"header",
      class_ = u"header",
    )
Beispiel #11
0
  def __init__( self, user, notebooks, first_notebook, login_url, logout_url, rate_plan, groups ):
    Product_page.__init__(
      self,
      user,
      first_notebook,
      login_url,
      logout_url,
      u"tour", # note title

      Div(
        H1(
          Img(
            src = u"/static/images/tour.png",
            width = u"277", height = u"47",
            alt = u"Luminotes tour",
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_card1.png", width = u"400", height = u"243", class_ = u"tour_card" ),
          P(
            u"Using index cards to take notes is really easy. You just write a title at the top and then jot down some notes.",
            class_ = u"tour_text",
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_card2.png", width = u"400", height = u"243", class_ = u"tour_card" ),
          P(
            u"And if you make one index card per subject, you can keep your notes organized.",
            class_ = u"tour_text",
          ),
          P(
            u"""
            But when your stack of cards grows larger than a few dozen, it becomes difficult to find the notes you're looking for.
            """,
            class_ = u"tour_text",
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_card3.png", width = u"430", height = u"366", class_ = u"tour_card" ),
          P(
            u"""
            If only there was something as simple for taking notes as index cards, but fast, searchable, and with some way to make
            links between your notes!
            """,
            class_ = u"tour_text",
          ),
          P(
            u"Introducing Luminotes...",
            class_ = u"tour_text",
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_screenshot1.png", width = u"725", height = u"560", class_ = u"tour_screenshot" ),
          Div(
            Div(
              Ol(
                Li( u"Format your wiki with this convenient toolbar" ),
                Li( u"Just start typing — everything is saved automatically" ),
                Li( u"Search through your entire wiki" ),
                Li( u"Make as many notebooks as you want" ),
                class_ = u"tour_list",
              ),
              class_ = u"tour_text",
            ),
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_screenshot2.png", width = u"725", height = u"558", class_ = u"tour_screenshot" ),
          Div(
            Div(
              Ol(
                Li( u"Connect your thoughts with links between notes" ),
                Li( u"Track past revisions and make updates without worry" ),
                Li( u"Download your complete wiki as a web page or spreadsheet" ),
                Li( u"Attach files to your wiki and download them anytime" ),
                class_ = u"tour_list",
              ),
              class_ = u"tour_text",
            ),
          ),
        ),
        Div(
          Img( src = u"/static/images/tour_screenshot3.png", width = u"725", height = u"558", class_ = u"tour_screenshot" ),
          Div(
            Div(
              Ol(
                Li( u"Share your wiki with friends and colleagues" ),
                Li( u"Send invites simply by entering email addresses" ),
                Li( u"Control how much access each person gets" ),
                Li( u"Revoke access at any time" ),
                class_ = u"tour_list",
              ),
              class_ = u"tour_text",
            ),
          ),
          class_ = u"tour_screenshot_wrapper",
        ),
        Div(
          Div(
            u"You can use Luminotes online and collaborate with others, or download Luminotes Desktop and take notes locally on your own computer!",
            class_ = u"tour_text",
          ),
        ),
        class_ = u"tour_area" 
      ),

      Div(
        P(
          Span( u"Like what you've seen so far?", class_ = u"hook_action_question" ), Br(),
          A( u"Try the demo", href = u"/users/demo", class_ = u"hook_action" ), u", ",
          A( u"Download", href = u"/download", class_ = u"hook_action"  ), u", ",
          Span( u" or ", class_ = u"hook_action_or" ),
          A( u"Sign up", href = u"/pricing", class_ = u"hook_action"  ),
          class_ = u"hook_action_area",
          separator = u"",
        ),
        class_ = u"center_area",
      ),
    )
Beispiel #12
0
    def __init__(self, toolbar, notebooks, notebook, parent_id, notebook_path,
                 updates_path, user, rate_plan):
        linked_notebooks = [
            nb for nb in notebooks
            if (nb.read_write == Notebook.READ_WRITE or
                (nb.read_write == Notebook.READ_ONLY
                 and not nb.name.startswith(u"Luminotes"))) and nb.name not in
            (u"trash") and nb.deleted is False
        ]

        if [tag for tag in notebook.tags if tag.name == u"forum"]:
            forum_tag = True
            forum_name = tag.value
            notebook_word = u"discussion"
            note_word = u"post"
        else:
            forum_tag = False
            forum_name = None
            notebook_word = u"notebook"
            note_word = u"note"

        Div.__init__(
            self,
            toolbar,
            (user.username == u"anonymous")
            and self.forum_link(forum_tag, forum_name) or None,
            (user.username != u"anonymous") and Div(
                (notebook_path != u"/") and Div(
                    H4(
                        u"this %s" % notebook_word,
                        id=u"this_notebook_area_title",
                    ),
                    self.forum_link(forum_tag, forum_name),
                    (rate_plan.get(u"notebook_sharing")
                     and notebook.name == u"Luminotes blog")
                    and Div(
                        A(
                            u"follow",
                            href=u"%s?rss" % notebook_path,
                            id=u"blog_rss_link",
                            title=
                            u"Subscribe to the RSS feed for the Luminotes blog.",
                        ),
                        A(
                            Img(src=u"/static/images/rss.png",
                                width=u"14",
                                height=u"14",
                                class_=u"middle_image padding_left"),
                            href=u"%s?rss" % notebook_path,
                            title=
                            u"Subscribe to the RSS feed for the Luminotes blog.",
                        ),
                        class_=u"link_area_item",
                    ) or
                    (updates_path and rate_plan.get(u"notebook_sharing") and
                     (not forum_tag) and Div(
                         A(
                             u"follow",
                             href=updates_path,
                             id=u"notebook_rss_link",
                             title=u"Subscribe to the RSS feed for this %s." %
                             notebook_word,
                         ),
                         A(
                             Img(src=u"/static/images/rss.png",
                                 width=u"14",
                                 height=u"14",
                                 class_=u"middle_image padding_left"),
                             href=updates_path,
                             title=u"Subscribe to the RSS feed for this %s." %
                             notebook_word,
                         ),
                         class_=u"link_area_item",
                     ) or None),
                    (notebook.read_write != Notebook.READ_ONLY) and Div(
                        A(
                            u"nothing but %ss" % note_word,
                            href=u"#",
                            id=u"declutter_link",
                            title=
                            u"Focus on just your %ss without any distractions."
                            % note_word,
                        ),
                        class_=u"link_area_item",
                    ) or None,
                    (notebook.read_write != Notebook.READ_WRITE
                     and notebook.name != u"Luminotes") and Div(
                         A(
                             u"export",
                             href=u"#",
                             id=u"export_link",
                             title=
                             u"Download a stand-alone copy of the entire %s." %
                             notebook_word,
                         ),
                         class_=u"link_area_item",
                     ) or None,
                    (notebook.read_write != Notebook.READ_WRITE) and Div(
                        A(
                            u"print",
                            href=u"/notebooks/export?notebook_id=%s&format=print"
                            % notebook.object_id,
                            id=u"print_notebook_link",
                            target=u"_new",
                            title=u"Print this %s." % notebook_word,
                        ),
                        class_=u"link_area_item",
                    ) or None,
                    (notebook.read_write == Notebook.READ_WRITE) and Span(
                        Div(
                            (notebook.name != u"trash") and A(
                                u"import",
                                href=u"#",
                                id=u"import_link",
                                title=
                                u"Import %ss from other software into Luminotes."
                                % note_word,
                            ) or None,
                            (notebook.name != u"trash") and u"|" or None,
                            A(
                                u"export",
                                href=u"#",
                                id=u"export_link",
                                title=
                                u"Download a stand-alone copy of the entire %s."
                                % notebook_word,
                            ),
                            class_=u"link_area_item",
                        ) or None,
                        (notebook.name != u"trash") and Div(
                            notebook.trash_id and A(
                                u"trash",
                                href=u"/notebooks/%s?parent_id=%s" %
                                (notebook.trash_id, notebook.object_id),
                                id=u"trash_link",
                                title=u"Look here for %ss you've deleted." %
                                note_word,
                            ) or None,
                            (notebook.owner and notebook.name != u"trash"
                             and notebook.trash_id) and u"|" or None,
                            (notebook.owner and notebook.name != u"trash")
                            and A(
                                u"delete",
                                href=u"#",
                                id=u"delete_notebook_link",
                                title=u"Move this %s to the trash." %
                                notebook_word,
                            ) or None,
                            class_=u"link_area_item",
                        ) or None,
                        (notebook.owner and notebook.name != u"trash") and Div(
                            A(
                                u"rename",
                                href=u"#",
                                id=u"rename_notebook_link",
                                title=u"Change the name of this %s." %
                                notebook_word,
                            ),
                            class_=u"link_area_item",
                        ) or None,
                        (notebook.owner and notebook.name != u"trash" and
                         user.username and rate_plan.get(u"notebook_sharing"))
                        and Div(
                            A(
                                u"share",
                                href=u"#",
                                id=u"share_notebook_link",
                                title=u"Share this %s with others." %
                                notebook_word,
                            ),
                            class_=u"link_area_item",
                        ) or None,
                        Div(
                            A(
                                u"print",
                                href=
                                u"/notebooks/export?notebook_id=%s&format=print"
                                % notebook.object_id,
                                id=u"print_notebook_link",
                                target=u"_new",
                                title=u"Print this %s." % notebook_word,
                            ),
                            class_=u"link_area_item",
                        ) or None,
                        (notebook.name == u"trash") and Rounded_div(
                            u"trash_notebook",
                            A(
                                u"trash",
                                href=u"#",
                                id=u"trash_link",
                                title=u"Look here for %ss you've deleted." %
                                note_word,
                            ),
                            class_=u"link_area_item",
                        ) or None,
                    ) or None,
                    id=u"this_notebook_area",
                ) or None,
                (not forum_tag) and Div((len(linked_notebooks) > 0) and H4(
                    u"notebooks",
                    id=u"notebooks_area_title",
                ) or None, [
                    (nb.object_id == notebook.object_id) and Rounded_div(
                        u"current_notebook",
                        A(
                            nb.name,
                            href=u"/notebooks/%s" % nb.object_id,
                            id=u"notebook_%s" % nb.object_id,
                        ),
                        (len(linked_notebooks) > 1) and Span(
                            Img(src=u"/static/images/up_arrow.png",
                                width=u"20",
                                height=u"17",
                                id=u"current_notebook_up"),
                            Img(src=u"/static/images/down_arrow.png",
                                width=u"20",
                                height=u"17",
                                id=u"current_notebook_down"),
                            Span(id="current_notebook_up_hover_preload"),
                            Span(id="current_notebook_down_hover_preload"),
                        ) or None,
                        class_=u"link_area_item",
                    ) or Div(
                        A(
                            nb.name,
                            href=u"/notebooks/%s" % nb.object_id,
                            id=u"notebook_%s" % nb.object_id,
                        ),
                        class_=u"link_area_item",
                    ) for nb in linked_notebooks
                ],
                                        id=u"notebooks_area") or None,
                (not forum_tag) and Div(
                    Input(
                        type=u"button",
                        class_=u"note_button",
                        id=u"new_notebook_button",
                        value=u"+ notebook",
                        title=u"Create a new wiki notebook.",
                    ),
                    class_=u"link_area_item",
                ) or None,
                Div(id=u"storage_usage_area", ),
                id=u"link_area_holder",
            ) or None,
            id=u"link_area",
        )