Replaced some reports with navigatable problems

This commit is contained in:
Georgy Litvinov 2021-06-07 15:41:18 +02:00
parent cd9266e83d
commit ce738866ec
3 changed files with 168 additions and 51 deletions

View file

@ -314,6 +314,15 @@ Function getRussian(identifier As String) As String
Case "validationBadFootnotesSymbolsNotification"
getRussian = "В символах сносок обнаружены не подходящие для публикации символы." & chr(10) & " Нажимая на стрелки навигатора вы сможете перемещаться между найденными символами сносок."
Exit Function
Case "badSectionsInTables"
getRussian = "Разделы, которые не должны находится внутри таблиц"
Exit Function
Case "badHeadingsInFootnotes"
getRussian = "Заголовки, которые не должны находиться в сносках"
Exit Function
Case "badHeadingsInTables"
getRussian = "Заголовки, которые нельзя размещать внутри таблиц"
Exit Function
Case Else
getRussian = "Перевод не найден"
End Select
@ -610,6 +619,15 @@ Function getEnglish(identifier As String) As String
Case "validationBadFootnotesSymbolsNotification"
getEnglish = "Unsuitable for publication symbols were found in footnote symbols. "& Chr (10) &" By clicking on the navigator arrows, you can navigate between found footnote symbols. "
Exit Function
Case "badSectionsInTables"
getEnglish = "Sections that shouldn't be inside tables "
Exit Function
Case "badHeadingsInFootnotes"
getEnglish = "Headings that should not be in footnotes"
Exit Function
Case "badHeadingsInTables"
getEnglish = "Headers that shouldn't be placed inside tables"
Exit Function
Case Else
getEnglish = "No translation"
End Select
@ -905,6 +923,15 @@ Function getCroatian(identifier As String) As String
Case "validationBadFootnotesSymbolsNotification"
getCroatian = "U simbolima fusnota pronađeni su neprikladni za objavljivanje simboli. "& Chr (10) &" Klikom na strelice navigatora možete se kretati između pronađenih simbola fusnota. "
Exit Function
Case "badSectionsInTables"
getCroatian = "Odjeljci koji ne bi trebali biti unutar tablica "
Exit Function
Case "badHeadingsInFootnotes"
getCroatian = "Naslovi koji ne bi trebali biti u fusnotama"
Exit Function
Case "badHeadingsInTables"
getCroatian = "Zaglavlja koja se ne smiju stavljati unutar tablica"
Exit Function
Case Else
getCroatian = "No translation"
End Select
@ -1200,6 +1227,15 @@ Function getSerbian(identifier As String) As String
Case "validationBadFootnotesSymbolsNotification"
getSerbian = "У симболима фуснота пронађени су неприкладни за објављивање симболи. "& chr(10) &" Кликом на стрелице навигатора можете се кретати између пронађених симбола фуснота. "
Exit Function
Case "badSectionsInTables"
getSerbian = "Одељци који не би требало да буду унутар табела"
Exit Function
Case "badHeadingsInFootnotes"
getSerbian = "Наслови који не смеју бити у фуснотама"
Exit Function
Case "badHeadingsInTables"
getSerbian = "Заглавља која не смеју бити смештена унутар табела"
Exit Function
Case Else
getSerbian = "No translation"
End Select
@ -1495,6 +1531,15 @@ Function getBosnian(identifier As String) As String
Case "validationBadFootnotesSymbolsNotification"
getBosnian = "U simbolima fusnota pronađeni su neprikladni za objavljivanje simboli. "& Chr (10) &" Klikom na strelice navigatora možete se kretati između pronađenih simbola fusnota. "
Exit Function
Case "badSectionsInTables"
getBosnian = "Odjeljci koji ne bi trebali biti unutar tablica "
Exit Function
Case "badHeadingsInFootnotes"
getBosnian = "Naslovi koji ne bi trebali biti u fusnotama"
Exit Function
Case "badHeadingsInTables"
getBosnian = "Zaglavlja koja se ne smiju stavljati unutar tablica"
Exit Function
Case Else
getBosnian = "No translation"
End Select

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Validation" script:language="StarBasic">Sub markval29
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Validation" script:language="StarBasic">Sub markval30
End Sub
@ -9,10 +9,10 @@ End Sub
Sub validateButton
Dim badFootnoteSigns As Boolean
Dim badGraphics As Boolean
Dim sectionsReport As String
Dim badSectionsInTables As Boolean
Dim badHeadingsInFootnotes As Boolean
Dim outlinePageStylesReport As String
Dim outlineInNotesReport As String
Dim oulineInTablesReport As String
Dim badHeadingsInTables As Boolean
Dim badText As Boolean
Dim needExtendedInfo As Boolean
Dim config As Object
@ -23,7 +23,7 @@ Sub validateButton
statusIndicator = ThisComponent.getCurrentController.statusIndicator
statusIndicator.Start(getTranslation(&quot;validationStarted&quot;),100)
badFootnoteSigns = noteSingsCheck()
badFootnoteSigns = noteSignsCheck()
statusIndicator.setValue(10)
badGraphics = checkGraphics()
@ -33,33 +33,24 @@ Sub validateButton
needFixColoredText = findColoredBackgroundInDoc()
statusIndicator.setValue(20)
&apos;
sectionsReport = checkSectionsInTables()
badSectionsInTables = checkSectionsInTables()
statusIndicator.setValue(30)
&apos;
outlineInNotesReport = checkNotesOutline()
badHeadingsInFootnotes = checkNotesOutline()
statusIndicator.setValue(40)
&apos;
outlinePageStylesReport = checkHeadingsInHeadersFooters()
statusIndicator.setValue(50)
&apos;
oulineInTablesReport = checkHeadingsInTextTables()
badHeadingsInTables = checkHeadingsInTextTables()
statusIndicator.setValue(60)
If outlineInNotesReport &lt;&gt; &quot;&quot; Then
MsgBox outlineInNotesReport
EndIf
If oulineInTablesReport &lt;&gt; &quot;&quot; Then
MsgBox oulineInTablesReport
EndIf
If outlinePageStylesReport &lt;&gt; &quot;&quot; Then
MsgBox outlinePageStylesReport
EndIf
If sectionsReport &lt;&gt; &quot;&quot; Then
MsgBox sectionsReport
EndIf
If config.getPropertyValue(&quot;complexity&quot;) = &quot;makerUp&quot; then
needExtendedInfo = true
Else
@ -73,7 +64,7 @@ Sub validateButton
numberingsErros = printNumberingSymbols(needExtendedInfo)
statusIndicator.setValue(80)
If brokenCharBackTransparent OR needFixColoredText OR numberingsErros OR badText OR badFootnoteSigns OR badGraphics Or outlineInNotesReport &lt;&gt; &quot;&quot; Or sectionsReport &lt;&gt; &quot;&quot; OR oulineInTablesReport &lt;&gt; &quot;&quot; OR outlinePageStylesReport &lt;&gt; &quot;&quot; Then
If brokenCharBackTransparent OR needFixColoredText OR numberingsErros OR badText OR badFootnoteSigns OR badGraphics Or badHeadingsInFootnotes Or badSectionsInTables OR badHeadingsInTables OR outlinePageStylesReport &lt;&gt; &quot;&quot; Then
MsgBox getTranslation(&quot;validationWarning&quot;)
Else
MsgBox getTranslation(&quot;validationSuccess&quot;)
@ -137,7 +128,7 @@ Sub replaceCharsInDOI
AskAndReplace(&quot;(?&lt;=DOI[0-9. /XVI:ХOО?-]{1,50})[‒–—−]{1,5}&quot;,&quot;-&quot;)
End sub
Private Function noteSingsCheck() As Boolean
Private Function noteSignsCheck() As Boolean
Dim footnotes As Object
Dim footnote As Object
Dim endnote As Object
@ -148,7 +139,7 @@ Private Function noteSingsCheck() As Boolean
Dim label As String
Dim result As String
Dim founds() As Object
noteSingsCheck = false
noteSignsCheck = false
result = &quot;&quot;
footnotes = ThisComponent.Footnotes
endnotes = ThisComponent.Endnotes
@ -180,24 +171,24 @@ Private Function noteSingsCheck() As Boolean
End If
Next j
Next i
If (UBound(founds) &gt; 0) Then
noteSingsCheck = true
If (UBound(founds) &gt; -1) Then
noteSignsCheck = true
MsgBox(getTranslation(&quot;validationBadFootnotesSymbolsNotification&quot;))
startNavigatorDialog(getTranslation(&quot;badNoteSings&quot;),founds)
EndIf
&apos;noteSingsCheck = result
&apos;noteSignsCheck = result
End Function
Function checkNotesOutline As String
Dim oDescriptor As Object
Function checkNotesOutline As Boolean
Dim footNotes As Object
Dim endNotes As Object
Dim x As Integer
Dim x As Long
Dim aNote As Object
Dim oEnum As Object
Dim oCurPar As Object
Dim result As String
result = &quot;&quot;
&apos; Dim result As String
Dim founds() As Object
&apos; result = &quot;&quot;
footNotes = thisComponent.footNotes
endNotes = thisComponent.EndNotes
for x = 0 to footNotes.Count -1
@ -207,7 +198,8 @@ Function checkNotesOutline As String
Do While oEnum.hasMoreElements()
oCurPar = oEnum.nextElement()
If oCurPar.OutlineLevel &gt; 0 Then
result = result &amp; getTranslation(&quot;validateFootnotes2&quot;) &amp; &quot; &quot; &amp; x &amp; &quot; &quot; &amp; getTranslation(&quot;setOutlineLevel&quot;) &amp; &quot; &quot; &amp; oCurPar.OutlineLevel &amp; chr(10)
addToArray(founds,oCurPar)
&apos; result = result &amp; getTranslation(&quot;validateFootnotes2&quot;) &amp; &quot; &quot; &amp; x &amp; &quot; &quot; &amp; getTranslation(&quot;setOutlineLevel&quot;) &amp; &quot; &quot; &amp; oCurPar.OutlineLevel &amp; chr(10)
EndIf
Loop
Next
@ -218,21 +210,29 @@ Function checkNotesOutline As String
Do While oEnum.hasMoreElements()
oCurPar = oEnum.nextElement()
If oCurPar.OutlineLevel &gt; 0 Then
result = result &amp; getTranslation(&quot;validateEndnotes1&quot;) &amp; &quot; &quot; &amp; x &amp; &quot; &quot; &amp; getTranslation(&quot;setOutlineLevel&quot;) &amp; &quot; &quot; &amp; oCurPar.OutlineLevel &amp; chr(10)
addToArray(founds,oCurPar)
&apos; result = result &amp; getTranslation(&quot;validateEndnotes1&quot;) &amp; &quot; &quot; &amp; x &amp; &quot; &quot; &amp; getTranslation(&quot;setOutlineLevel&quot;) &amp; &quot; &quot; &amp; oCurPar.OutlineLevel &amp; chr(10)
EndIf
Loop
Next
checkNotesOutline = result
If (UBound(founds) &gt; -1) Then
startNavigatorDialog(getTranslation(&quot;badHeadingsInFootnotes&quot;),founds)
checkNotesOutline = true
Else
checkNotesOutline = false
EndIf
End Function
Function checkSectionsInTables As String
Function checkSectionsInTables As Boolean
Dim x As Integer
Dim oEnum As Object
Dim result As String
&apos;Dim result As String
Dim sections As Object
Dim section As Object
Dim anchor As Object
Dim anchorText As Object
Dim badSections() As Object
result = &quot;&quot;
sections = thisComponent.TextSections
for x = 0 to sections.Count -1
@ -240,10 +240,17 @@ Function checkSectionsInTables As String
anchor = section.getAnchor()
anchorText = anchor.getText()
If anchorText.supportsService(&quot;com.sun.star.text.CellProperties&quot;) Then
result = result &amp; getTranslation(&quot;section&quot;) &amp; &quot; &quot; &amp; section.Name &amp; &quot; &quot; &amp; getTranslation(&quot;isInTable&quot;) &amp; chr(10)
addToArray(badSections(),anchor)
&apos;result = result &amp; getTranslation(&quot;section&quot;) &amp; &quot; &quot; &amp; section.Name &amp; &quot; &quot; &amp; getTranslation(&quot;isInTable&quot;) &amp; chr(10)
EndIf
Next
checkSectionsInTables = result
If (UBound(badSections) &gt; -1) Then
checkSectionsInTables = true
startNavigatorDialog(getTranslation(&quot;badSectionsInTables&quot;),badSections)
Else
checkSectionsInTables = false
EndIf
End Function
Function checkHeadingsInHeadersFooters As String
@ -301,7 +308,7 @@ Function checkHeadingsInHeadersFooters As String
checkHeadingsInHeadersFooters = result
End Function
Function checkHeadingsInTextTables() As String
Function checkHeadingsInTextTables() As Boolean
Dim enum1Element As Object
Dim enum1 As Object
Dim enum2 As Object
@ -314,8 +321,7 @@ Function checkHeadingsInTextTables() As String
Dim cell As Object
Dim cellText As Object
Dim firstCellName As String
Dim result As String
result = &quot;&quot;
Dim founds() As Object
enum1 = ThisComponent.Text.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
@ -326,20 +332,86 @@ Function checkHeadingsInTextTables() As String
cell = enum1Element.getCellByName(cellNames(i))
cellText = cell.getText()
If cellNames(i) = firstCellName Then
If isHeadingNotFirstInText(cellText) Then
result = result &amp; getTranslation(&quot;foundHeadingIn&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;table&quot;) &amp; &quot; &quot; &amp; enum1Element.TableName &amp; chr(10)
EndIf
addHeadingNotFirstInText(cellText,founds)
Else
If isHeadingsInText(cellText) Then
result = result &amp; getTranslation(&quot;foundHeadingIn&quot;) &amp; &quot; &quot; &amp; getTranslation(&quot;table&quot;) &amp; &quot; &quot; &amp; enum1Element.TableName &amp; chr(10)
EndIf
addHeadingsInText(cellText,founds)
EndIf
Next i
EndIf
Wend
checkHeadingsInTextTables = result
If (UBound(founds) &gt; -1) Then
checkHeadingsInTextTables = true
startNavigatorDialog(getTranslation(&quot;badHeadingsInTables&quot;),founds)
Else
checkHeadingsInTextTables = false
EndIf
End Function
Sub addHeadingNotFirstInText(oText As Object, founds() As Object)
Dim enum1Element As Object
Dim enum1 As Object
Dim enum2 As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Integer
Dim i As Integer
Dim count As Integer
Dim cell As Object
Dim cellText As Object
Dim first As Boolean
first = true
enum1 = oText.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
If Not first Then
If enum1Element.OutlineLevel &gt; 0 Then
addToArray(founds,enum1Element)
EndIf
EndIf
ElseIf enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
cellNames = enum1Element.cellNames
For i = LBound(cellNames) To Ubound(cellNames)
cell = enum1Element.getCellByName(cellNames(i))
cellText = cell.getText()
addHeadingsInText(cellText,founds)
Next i
EndIf
first = false
Wend
End Sub
Sub addHeadingsInText(oText As Object, founds() As Object)
Dim enum1Element As Object
Dim enum1 As Object
Dim enum2 As Object
Dim thisPortion As Object
Dim footnoteText As Object
Dim label As String
Dim labelNum As Integer
Dim i As Integer
Dim count As Integer
Dim cell As Object
Dim cellText As Object
enum1 = oText.Text.createEnumeration
While enum1.hasMoreElements
enum1Element = enum1.nextElement
If enum1Element.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
If enum1Element.OutlineLevel &gt; 0 Then
addToArray(founds,enum1Element)
EndIf
ElseIf enum1Element.supportsService(&quot;com.sun.star.text.TextTable&quot;) Then
cellNames = enum1Element.cellNames
For i = LBound(cellNames) To Ubound(cellNames)
cell = enum1Element.getCellByName(cellNames(i))
cellText = cell.getText()
addHeadingsInText(cellText,founds)
Next i
EndIf
Wend
End Sub
Function isHeadingNotFirstInText(oText As Object) As Boolean
Dim enum1Element As Object
Dim enum1 As Object
@ -961,7 +1033,7 @@ Function findBadCharacters() As Boolean
founds = findInDoc(&quot;[\uE000-\uF8FF]+&quot;)
findBadCharacters = false
If founds.count &lt;&gt; 0 Then
MsgBox getTranslation(&quot;validationBadSymbolsNotification&quot;)
&apos;MsgBox getTranslation(&quot;validationBadSymbolsNotification&quot;)
foundObjects = convertXIndexAccessToArray(founds)
startNavigatorDialog(getTranslation(&quot;badSymbols&quot;),foundObjects)
findBadCharacters = true

Binary file not shown.