mirror of
https://github.com/Dvorinka/PPve.git
synced 2026-06-03 20:12:59 +00:00
Add files via upload
This commit is contained in:
+20
-15
@@ -20,13 +20,14 @@ type Contact struct {
|
|||||||
Position string `json:"position"`
|
Position string `json:"position"`
|
||||||
Phone string `json:"phone,omitempty"`
|
Phone string `json:"phone,omitempty"`
|
||||||
ServicePhone string `json:"service_phone,omitempty"`
|
ServicePhone string `json:"service_phone,omitempty"`
|
||||||
|
Internal bool `json:"internal"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ContactData struct {
|
type ContactData struct {
|
||||||
Contacts []Contact `json:"contacts"`
|
Contacts []Contact `json:"contacts"`
|
||||||
InternalContacts []Contact `json:"internal_contacts"`
|
InternalContacts []Contact `json:"internal_contacts"`
|
||||||
LastUpdated time.Time `json:"last_updated"`
|
LastUpdated time.Time `json:"last_updated"`
|
||||||
FileHash string `json:"file_hash"`
|
FileHash string `json:"file_hash"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@@ -85,10 +86,10 @@ func loadData() {
|
|||||||
if _, err := os.Stat(xlsxFile); os.IsNotExist(err) {
|
if _, err := os.Stat(xlsxFile); os.IsNotExist(err) {
|
||||||
log.Printf("Excel file %s not found, using empty data", xlsxFile)
|
log.Printf("Excel file %s not found, using empty data", xlsxFile)
|
||||||
currentData = &ContactData{
|
currentData = &ContactData{
|
||||||
Contacts: []Contact{},
|
Contacts: []Contact{},
|
||||||
InternalContacts: []Contact{},
|
InternalContacts: []Contact{},
|
||||||
LastUpdated: time.Now(),
|
LastUpdated: time.Now(),
|
||||||
FileHash: "",
|
FileHash: "",
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -116,10 +117,10 @@ func loadData() {
|
|||||||
log.Printf("Error parsing Excel file: %v", err)
|
log.Printf("Error parsing Excel file: %v", err)
|
||||||
// Use empty data if parsing fails
|
// Use empty data if parsing fails
|
||||||
currentData = &ContactData{
|
currentData = &ContactData{
|
||||||
Contacts: []Contact{},
|
Contacts: []Contact{},
|
||||||
InternalContacts: []Contact{},
|
InternalContacts: []Contact{},
|
||||||
LastUpdated: time.Now(),
|
LastUpdated: time.Now(),
|
||||||
FileHash: currentHash,
|
FileHash: currentHash,
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -132,7 +133,7 @@ func loadData() {
|
|||||||
log.Printf("Warning: Could not save cached data: %v", err)
|
log.Printf("Warning: Could not save cached data: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("Loaded %d contacts from Excel file", len(currentData.Contacts) + len(currentData.InternalContacts))
|
log.Printf("Loaded %d contacts from Excel file", len(currentData.Contacts)+len(currentData.InternalContacts))
|
||||||
}
|
}
|
||||||
|
|
||||||
func calculateFileHash(filename string) (string, error) {
|
func calculateFileHash(filename string) (string, error) {
|
||||||
@@ -192,7 +193,7 @@ func parseExcelFile(filename string) ([]Contact, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sheetName := sheets[0]
|
sheetName := sheets[0]
|
||||||
|
|
||||||
// Parse the single table (columns A-E)
|
// Parse the single table (columns A-E)
|
||||||
contacts := parseTable(f, sheetName, "A", "E")
|
contacts := parseTable(f, sheetName, "A", "E")
|
||||||
return contacts, nil
|
return contacts, nil
|
||||||
@@ -301,12 +302,16 @@ func cleanPhoneNumber(phone string) string {
|
|||||||
|
|
||||||
func processContacts(contacts []Contact) *ContactData {
|
func processContacts(contacts []Contact) *ContactData {
|
||||||
var data ContactData
|
var data ContactData
|
||||||
data.InternalContacts = []Contact{} // Initialize as empty array
|
data.Contacts = []Contact{}
|
||||||
|
data.InternalContacts = []Contact{}
|
||||||
|
|
||||||
for _, contact := range contacts {
|
for _, contact := range contacts {
|
||||||
if strings.Contains(contact.Name, "Interní") {
|
// Check for internal contacts (either name contains "Interní" or position starts with "Interní")
|
||||||
|
if strings.Contains(contact.Name, "Interní") || strings.HasPrefix(contact.Position, "Interní") {
|
||||||
|
contact.Internal = true
|
||||||
data.InternalContacts = append(data.InternalContacts, contact)
|
data.InternalContacts = append(data.InternalContacts, contact)
|
||||||
} else {
|
} else {
|
||||||
|
contact.Internal = false
|
||||||
data.Contacts = append(data.Contacts, contact)
|
data.Contacts = append(data.Contacts, contact)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -355,7 +360,7 @@ func reloadData(w http.ResponseWriter, r *http.Request) {
|
|||||||
loadData()
|
loadData()
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
fmt.Fprintf(w, `{"status": "reloaded", "contacts_count": %d}`, len(currentData.Contacts) + len(currentData.InternalContacts))
|
fmt.Fprintf(w, `{"status": "reloaded", "contacts_count": %d}`, len(currentData.Contacts)+len(currentData.InternalContacts))
|
||||||
}
|
}
|
||||||
|
|
||||||
func getEmbeddedHTML() string {
|
func getEmbeddedHTML() string {
|
||||||
|
|||||||
Reference in New Issue
Block a user