// Copyright 2016 Documize Inc. . All rights reserved. // // This software (Documize Community Edition) is licensed under // GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html // // You can operate outside the AGPL restrictions by purchasing // Documize Enterprise Edition and obtaining a commercial license // by contacting . // // https://documize.com // Package web contains the Documize static web data. package web import ( "html/template" "net/http" "github.com/documize/community/core/api" "github.com/documize/community/core/env" "github.com/documize/community/core/secrets" ) // SiteInfo describes set-up information about the site var SiteInfo struct { DBname, DBhash, Issue string } func init() { SiteInfo.DBhash = secrets.GenerateRandomPassword() // do this only once } // EmberHandler serves HTML web pages func EmberHandler(w http.ResponseWriter, r *http.Request) { filename := "index.html" switch api.Runtime.Flags.SiteMode { case env.SiteModeOffline: filename = "offline.html" case env.SiteModeSetup: // NoOp case env.SiteModeBadDB: filename = "db-error.html" default: SiteInfo.DBhash = "" } data, err := Embed.Asset("bindata/" + filename) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } emberView := template.Must(template.New(filename).Parse(string(data))) if err := emberView.Execute(w, SiteInfo); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }