• Jump To … +
    server.coffee src/actionknob.coffee src/autosem.coffee src/bitbucket_kba.coffee src/browserlog.coffee src/datareduction.coffee src/dci.coffee src/dciknob.coffee src/deeseeeye.coffee src/dnd.coffee src/doof.coffee src/formurla-mngr.coffee src/fractalpanel.coffee src/fractalpanel_test.coffee src/front.coffee src/ingestor.coffee src/kbabitbucket.coffee src/knobctrl.coffee src/lib_test.coffee src/nanoclock.coffee src/noodb.coffee src/noodbabstract.coffee src/noodbbrowser.coffee src/noodbbrowser_test.coffee src/noodbsec.coffee src/noorauth.coffee src/noorplugin.coffee src/noorquery.coffee src/noorvm.coffee src/noorwrite.coffee src/quadparser.coffee src/quadparsern3.coffee src/rbac.coffee src/reactor.coffee src/rebase.coffee src/rsrcidx.coffee src/sandboxactions.coffee src/screen_ctx.coffee src/spogi.coffee src/tabular_widget.coffee src/visctrl.coffee src/voicesknob.coffee src/whowhen.coffee src/xsd2native.coffee
  • front.coffee

  • ¶
    nooron_logo_html = """
    
      <div class="header">
        <a id="logolink" href="/">
            <div class="nooron_logo_box">
              <img class="afterScroll hmlogo" src="../img/header-logo.png" alt="logo">
            </div>
        </a>
        <div id="user_login_and_actions">
          <span id="login_form_box"></span><br/>
          <span id="login_form_prompt">Login, Join or SignUp for Beta</span>
        </div>
      </div>
    
    """
    
    create_local_noodb = (socket, email_login) ->
      one_million = require("nanoclock").one_million
      int_to_base = require("rebase").int_to_base
    
      BrowserLog = require("browserlog").BrowserLog
      noodbbrowser = require("noodbbrowser")
      base = location.href
      args =
  • ¶

    log_level: ‘debug’

        log_level: 'error'
  • ¶

    log_level: ‘notice’

      if email_login.logged_in
        args.auth_cookie = "auth=#{email_login.split_cookies().auth}"
        $("#login_form_prompt").hide()
  • ¶

    console.log “auth_cookie”, args

      fname_url = "#{base}/q"
      noodb = new noodbbrowser.NooDBBrowser(socket, base, args)
      noodb.email_login = email_login
      permeate(require('noorvm').NoorVM, noodb)
      window.show_noorontime = () ->
        n = noodb.now_baseXX()
        $("#noorontime").html(n)
        return n
      setInterval(show_noorontime,1000)
      noodb.log.help()
      return noodb
    
    make_login_pane = (fracpanel, enable_login) ->
      header = fracpanel.split_frac_on_side('fp_2','north')
      $("#ca_2").empty()
      $("#ca_2").addClass("nooHeader")
      $("#ca_2").html(nooron_logo_html)
      header.hide_all_buttons()
  • ¶

    TODO make the disabling of NEWS buttons work

      header.always_show_NEWS_buttons = false
      header.show_NEWS_handle =
        N: false
        E: false
        W: false
        S: false
  • ¶

    TODO move the following logic into FractalPanel as methods snugWidth() and snugHeight()

      height = $("#ca_2")[0].clientHeight + 5 # padded for scrollbar suppression
      height = 0; #Minimize header pane
      header.parent_frac.move_divider_to(undefined,height)
  • ¶

    width = $(“#ca_2”)[0].clientWidth + 35 # padded for scrollbar suppression header.parent_frac.move_divider_to(width)

      retval = {}
      if enable_login
        retval = new EmailLogin("#login_form_box")
      else
        $("#user_login_and_actions").hide()
    
      return retval
    
    root_fracpanel = undefined
    
    window.start_nooron = (clientArgs) ->
  • ¶

    TODO fix this ugliness of needing to require things to globals

      window.dnd = require("dnd")
      window.tabular_widget = require('tabular_widget').tabular_widget
      window.permeate = require('noorplugin').permeate
      socket = io()
      FractalPanel = require("fractalpanel").FractalPanel
      DCIKnob = require("dciknob").DCIKnob
      VoicesKnob = require("voicesknob").VoicesKnob
      root_fracpanel = new FractalPanel "body", "root",
        make_frame: true
        suppress_corner_buttons: false
        propagate:
          always_show_NEWS_buttons: false
          make_frame: false
          color_panels_uniquely: false
          inject_tree_path: false
          suppress_corner_buttons: false
          suppress_content_area: false
          action_button__class: DCIKnob
          voices_button__class: VoicesKnob
  • ¶

    vantages_button__class: VoicesKnob

          show_NEWS_handle:
            E: true
            S: true
            N: true
            W: true
      window.root_fracpanel = root_fracpanel
      first_frac = root_fracpanel.first_frac
      root_fracpanel.clientArgs = clientArgs
    
      if window?
        if not window.global?
          window.global = {}
    
      enable_login = clientArgs.enable_login
      email_login = make_login_pane(root_fracpanel, enable_login)
    
      window.noodb = create_local_noodb(socket, email_login)
    
      FormurlaManager = require('formurla-mngr').FormurlaManager
      require("visctrl").register_visualizations(FormurlaManager)
      window.formurlaManager = new FormurlaManager(
        root_fracpanel, noodb, window, clientArgs)
    
      default_formurla = clientArgs['default_formurla'] or 'print("no formurla found")'
      formurla = formurlaManager.get_location_formurla()
    
      showDefaultView = () ->
  • ¶

    Run this if no initialLoggedInFormurla is found

        formurla = formurla or default_formurla
  • ¶

    alert(“showDefaultView() #{formurla}”)

        formurlaManager.run_formurla(first_frac, formurla)
      showDefaultHandle = setTimeout(showDefaultView, 500)
    
      useLoggedInFormurla = not formurla and email_login.logged_in
      if useLoggedInFormurla
        replaceFormurlaWith = (spogi) ->
          clearTimeout(showDefaultHandle)
          newFormurla = spogi.o.getValue()
  • ¶

    msg = “useNew: #{useNew} nrn:initialLoggedInFormurla: «#{newFormurla}»”

          formurlaManager.run_formurla(first_frac, newFormurla)
        Query = require("noodbabstract").Query
        qryTerms = [{p: 'nrn:initialLoggedInFormurla'}]
  • ¶

    query = new Query(qryTerms, {which: “last”})

        noodb.on_do(qryTerms, replaceFormurlaWith)
    
      if clientArgs.close_login_panel
        root_fracpanel.second_frac.close_button.click()