or
Sometimes I added also fields and functions with names starting with underscore.
I know these are considered to be private.
But I needed them in some cases when I derived a class from a Kendo class. So I use them as if they are 'protected' (as we would call it in C#). It is not very elegant to add them to the type definition. Any thoughts how to solve that?
BTW: my additions are far from complete. Sometimes I just added a field with type any to make it just work. Of course I expect you will work them out :-)
Regards, Jaap
symfonyTaxRegisterDropDown: function(){ return { index: -1, optionLabel: " ", valuePrimitive: true, autoBind: true, filter: "contains", dataTextField: "name", dataValueField: "id", dataSource: { type: "json", serverFiltering: true, transport: { read: { url: "unisono/symfony/vat/register" } }, schema: { data: "data", total: function (result) { return result.total; } } } } },$scope.customerOptions = optionsGenerator.companyDropDown(); //combobox with customer id $scope.supplierOptions = optionsGenerator.contractorDropDown(); //combobox with supplier id $scope.supplierOptions.cascadeFrom = "customer"; $scope.supplierOptions.cascadeFromField = "id"; $scope.paymentOptions = optionsGenerator.enumerationDropDown("paymentMethod", $scope.documentType); $scope.currencyOptions = optionsGenerator.enumerationDropDown("currency", $scope.documentType); $scope.typeOptions = optionsGenerator.symfonyDocumentTypeDropDown(); //combobox with documentTypeSymfony id $scope.typeOptions.cascadeFrom = "customer"; $scope.typeOptions.cascadeFromField = "id"; $scope.categoryOptions = optionsGenerator.symfonyCategoryDropDown(); //combobox with category id $scope.categoryOptions.cascadeFrom = "documentTypeSymfony"; $scope.categoryOptions.cascadeFromField = "id"; $scope.vatRegisterOptions = optionsGenerator.symfonyTaxRegisterDropDown(); //combobox with taxRegister id $scope.vatRegisterOptions.cascadeFrom = "customer"; $scope.vatRegisterOptions.cascadeFromField = "id"; $scope.descriptionOptions = optionsGenerator.symfonyDescriptionDropDown(); //combobox with description id $scope.descriptionOptions.cascadeFrom = "customer"; $scope.descriptionOptions.cascadeFromField = "id";<div id="{{ windowIdentifier }}" kendo-window="dialogWindow" k-modal="true" k-resizable="false" k-draggable="false" k-width="width" k-height="height" k-title="false" k-visible="false" k-on-open="dialogVisibility = true; openWindowEvent(); test();" k-on-close="dialogVisibility = false;" style="font: 0.75em 'Noto Sans', Ubuntu, Arial, Helvetica, sans-serif; overflow: hidden !important;"> <div kendo-toolbar k-options="toolbarOptions"> </div> <div id="correctionContent" kendo-splitter k-panes="[ null, {collapsible: true, size: positionSize, resizable: false, collapsed: true}]" k-on-collapse="stageResizePositionCollapseEvent(kendoEvent)" k-on-expand="stageResizePositionExpandEvent(kendoEvent)" k-orientation="'vertical'" style="height: {{height - 50}}px; width: {{width - 14}}px; overflow: hidden !important;" ng-controller="draw"> <div kendo-splitter k-panes="[ {collapsible: true, size: leftSideSize, resizable: false}, null]" k-on-collapse="stageResizeLeftSideCollapseEvent(kendoEvent)" k-on-expand="stageResizeLeftSideExpandEvent(kendoEvent)" k-orientation="'horizontal'" style="overflow: hidden !important;" ng-controller="symfonyCorrection"> <div style="margin-left: 10px;"> <table style="width: 360px"> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.COMPANY' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <select id="customer" ng-model="documentDoc.customer" name="customer" kendo-drop-down-list k-options="customerOptions" style="width: 238px; padding-top: 10px;" tabindex="0" ng-change="companyChange();"> </select> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.CONTRACTOR' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <div style="display: inline-block; padding-top: 10px;"> <div style="float:left;" id="contractorInfoTip" name="contractorInfoTip"> <kendo-button style="float:left; height: 26px; width: 26px;" sprite-css-class="'arrowDown'" id="showContractorInfo" ng-click="contractorInfo()" ></kendo-button> </div> <select style="float:left; width: 155px;" id="supplier" name="supplier" k-suggest="true" k-on-data-bound="supplierDataBound(kendoEvent)" ng-model="documentDoc.supplier" name="supplier" kendo-combo-box k-options="supplierOptions" ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="1" ng-mouseup="handlingDrop($event, 'SUPPLIER');" ng-change="changeValid('SELECT','supplier')"></select> <kendo-button style="float:left; height: 26px;" sprite-css-class="'editMark'" id="editContractor" ng-click="contractorEdit()"></kendo-button> <kendo-button style="float:left; height: 26px;" sprite-css-class="'addMark'" id="addContractor" ng-click="contractorAdd()"></kendo-button> </div> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.TYPE' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <div style="padding-top: 10px;"> <select id="documentTypeSymfony" name="documentTypeSymfony" ng-model="documentDoc.documentType" kendo-combo-box k-options="typeOptions" style="width: 238px;" tabindex="2" k-on-data-bound="documentTypeDataBound(kendoEvent)" k-suggest="true"></select> </div> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.INVOICE_NUMBER' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <div style="padding-top: 10px;"> <input id="invoiceNumber" name="invoiceNumber" ng-model='documentDoc.invoiceNumber' style='width: 234px;' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="3" ng-mouseup="handlingDrop($event, 'TEXT_ONE_LINE');" ng-change="changeValid('TEXT','invoiceNumber')"/> </div> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.CORRECT_INVOICE_NUMBER' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <div style="padding-top: 10px;"> <input id="correctInvoiceNumber" name="correctInvoiceNumber" ng-blur="lostFocus($event)" ng-model='documentDoc.correctInvoiceNumber' style='width: 234px;' ng-focus="drawFocus($event)" tabindex="4" ng-mouseup="handlingDrop($event, 'TEXT_ONE_LINE');" /> </div> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.ISSUE_DATE' | translate}}</label> </td> <td style="width: 120px;"> <input id="creationDate" name="creationDate" kendo-date-picker ng-model="documentDoc.creationDate" style='width: 118px; ' ng-focus="drawFocus($event)"ng-blur="lostFocus($event)" tabindex="5" k-options="datePickersOptions" ng-mouseup="handlingDrop($event, 'DATE');" ng-change="changeValid('DATE','creationDate')"/> </td> <td style="width: 120px;"> <input id="receiptDate" name="receiptDate" kendo-date-picker ng-model="documentDoc.receiptDate" style='width: 118px; ' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="6" k-options="datePickersOptions" ng-mouseup="handlingDrop($event, 'DATE');" ng-change="changeValid('DATE','receiptDate')"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.SALES_DATE' | translate}}</label> </td> <td colspan="2"> <input id="salesDate" name="salesDate" kendo-date-picker ng-model="documentDoc.salesDate" style='width: 118px;' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="7" k-options="datePickersOptions" ng-mouseup="handlingDrop($event, 'DATE');" ng-change="changeValid('DATE','salesDate')"/> </td> </tr> <!--<tr style="width: 10px;"><td colspan="3" style="width: 10px;"></td></tr>--> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.PAYMENT_DATE' | translate}}</label> </td> <td style="width: 120px;"> <select id="paymentMethod" name="paymentMethod" ng-model="documentDoc.paymentMethod" tabindex="8" kendo-drop-down-list k-options="paymentOptions" style="width: 118px;" ng-focus="drawFocus($event)" ng-blur="lostFocus($event)"></select> </td> <td style="width: 120px;"> <input id="paymentDate" name="paymentDate" kendo-date-picker ng-model="documentDoc.paymentDate" style='width: 118px; ' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="9" k-options="datePickersOptions" ng-mouseup="handlingDrop($event, 'DATE');" ng-change="changeValid('DATE','paymentDate')"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.DECLARATION' | translate}}</label> </td> <td style="width: 120px;"> <select id="declarationMonth" name="declarationMonth" ng-model="documentDoc.declarationMonth" kendo-drop-down-list k-options="declarationMonths" style="width: 118px;" tabindex="10"></select> </td> <td style="width: 120px;"> <input id="declarationYear" name="declarationYear" kendo-date-picker ng-model="documentDoc.declarationYear" k-options="declarationYearOptions" k-format="'yyyy'" style='width: 118px; ' tabindex="11"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.BANK_ACCOUNT' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <input id="bankAccountNumber" name="bankAccountNumber" ng-model='documentDoc.bankAccountNumber' style='width: 234px; margin-top: 10px;' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="12" ng-mouseup="handlingDrop($event, 'BANK_ACCOUNT');" ng-change="changeValid('TEXT','bankAccountNumber')"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.SWIFT' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <input id="swift" name="swift" ng-model='documentDoc.swift' style='width: 234px; margin-top: 10px;' ng-focus="drawFocus($event)" ng-blur="lostFocus($event)" tabindex="13" ng-mouseup="handlingDrop($event, 'TEXT_ONE_LINE');" ng-change="changeValid('TEXT','swift')"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.REGISTRATION_PLATE' | translate}}</label> </td> <td style="width: 240px;" colspan="2"> <input id="registrationPage" name="registrationPage" ng-model='documentDoc.registrationPage' style='width: 234px; margin-top: 10px;' ng-blur="lostFocus($event)" ng-focus="drawFocus($event)" ng-change="changeValid('TEXT','registrationPage')" tabindex="14"/> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.CATEGORY' | translate}}</label> </td> <td colspan="2"> <select id="category" style="float:left; width: 183px;" name="category" k-on-cascade="categoryCascade(kendoEvent)" ng-model="documentDoc.category" kendo-combo-box="widgetCategory" k-suggest="true" k-options="categoryOptions" tabindex="15" k-on-data-bound="categoryDataBound(kendoEvent)" ng-change="changeValid('SELECT','category'); categoryChange();"></select> <kendo-button style="float:left; height: 26px;" sprite-css-class="'editMark'" ng-click="categoryEdit()" id="categoryEditButton"></kendo-button> <kendo-button style="float:left; height: 26px;" sprite-css-class="'addMark'" ng-click="categoryAdd()" id="categoryAddButton"></kendo-button> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.VAT_REGISTER' | translate}}</label> </td> <td colspan="2"> <select id="vatRegister" name="vatRegister" ng-model="documentDoc.vatRegister" k-on-data-bound="vatRegisterDataBound(kendoEvent)" kendo-combo-box="widgetVatRegister" k-options="vatRegisterOptions" ng-readonly="true" style="width: 238px;"></select> </td> </tr> <tr> <td colspan="3"> <table style="margin-left: 37px !important;"> <tr> <td> <input id="netAmount" name="netAmount" ng-model='documentDoc.netAmount' tabindex="17" ng-blur="lostFocus($event)" style='width: {{amountWidth - 4}}px !important; height: 20px;' required="required" ng-focus="drawFocus($event)" ng-mouseup="handlingDrop($event, 'NUMBER');" ng-change="changeValid('NUMBER','netAmount')" /> <!--kendo-numeric-text-box k-spinners="false" k-step="0.01" class="k-rtl"/>--> </td> <td> <input id="vatAmount" name="vatAmount" ng-model='documentDoc.vatAmount' tabindex="18" ng-blur="lostFocus($event)" style='width: {{amountWidth - 4}}px !important; height: 20px;' required="required" ng-focus="drawFocus($event)" ng-mouseup="handlingDrop($event, 'NUMBER');" ng-change="changeValid('NUMBER','vatAmount')" /> <!--kendo-numeric-text-box k-spinners="false" k-step="0.01" class="k-rtl"/>--> </td> <td> <input id="grossAmount" name="grossAmount" ng-model='documentDoc.grossAmount' tabindex="19" ng-blur="lostFocus($event)" style='width: {{amountWidth - 4}}px !important; height: 20px;' required="required" ng-focus="drawFocus($event)" ng-mouseup="handlingDrop($event, 'NUMBER');" ng-change="changeValid('NUMBER','grossAmount')" /> <!--kendo-numeric-text-box k-spinners="false" k-step="0.01" class="k-rtl"/>--> </td> <td style="vertical-align: bottom;"> <select id="currency" name="type" ng-model="documentDoc.currency" ng-blur="lostFocus($event)" kendo-drop-down-list k-options="currencyOptions" tabindex="20" ng-change="changeValid('NUMBER', 'currency')" style="width: {{amountWidth }}px !important;" ng-focus="drawFocus($event)"></select> </td> </tr> </table> </td> </tr> <tr> <td colspan="3"> <kendo-grid id="taxRates" options="taxRateGridOptions" k-data-source="taxRatesDataSource" k-width="300" k-height="150" k-editable="'incell'" k-selectable="'cell'" style="margin-top: 5px !important;" k-on-click="taxRateClick(kendoEvent)"> <ul id="taxRatesGridMenu" kendo-context-menu k-target="'#taxRates'" k-filter="'tr'" k-on-select="taxRateMenuEvent(kendoEvent)"> <li k-on-select="addTaxRatePositionUpper(kendoEvent)" value="0">Dodaj pozycje nad</li> <li k-on-select="addTaxRatePositionBottom(kendoEvent)" value="1">Dodaj pozycje pod</li> <li k-on-select="removeTaxRatePosition(kendoEvent)" value="2">Usuń pozycję</li> <li k-on-select="splitTaxRatePosition(kendoEvent)" value="3">Rozbij</li> </ul> </kendo-grid> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.DESCRIPTION' | translate}}</label> </td> <td colspan="2"> <select id="description" style="float:left; width: 183px;" name="description" k-on-data-bound="descriptionDataBound(kendoEvent)" ng-model="documentDoc.description" kendo-combo-box k-options="descriptionOptions"></select> <kendo-button style="float:left; height: 26px;" sprite-css-class="'editMark'" ng-click="descriptionEdit()" id="descriptionEditButton"></kendo-button> <kendo-button style="float:left; height: 26px;" sprite-css-class="'addMark'" ng-click="descriptionAdd()" id="descriptionAddButton"></kendo-button> </td> </tr> <tr> <td style="width: 120px;"> <label style="padding-top: 10px;">{{'ALL.CORRECT.NOTE' | translate}}</label> </td> <td colspan="2"> <textarea id="note" name="note" ng-model="documentDoc.note" style="width: 234px !important; max-width: 234px !important;"></textarea> </td> </tr> </table> </div> <div id="stage" style="background-color: rgba(101, 100, 103, 0.92); overflow: hidden;"> </div> </div> <div> <kendo-grid id="invoicePositions" options="invoicePositionsGridOptions" k-editable="'incell'" k-height="130" k-selectable="'cell'" ></kendo-grid> <ul id="invoicePositionsGridMenu"></ul> </div> </div> <div id="cloud" style="display: none; min-width: 70px; min-height: 34px;z-index: 99999; position: absolute !important; left: 0px; top: 0px; background-color: white; border-width: 1px; border-color: #000000; border-style: solid;"> <div id="cloudHeader" style="height: 14px; background-color: #ff5b2e; border-top-width: 0px; border-left-width: 0px; border-right-width: 0px; border-bottom-width: 1px; border-color: #000000; border-style: solid;"></div> <div id="cloudContent" style="margin: 3px;"></div> </div> <contractor-window-form mode="contractorModeWindow"></contractor-window-form> <description-window-form mode="descriptionModeWindow"></description-window-form> <category-window-form mode="categoryModeWindow" company="companyToCategory" companyOptions="customerOptions" companyEdit="false"></category-window-form> <mail-window-form diasbledMail="false" to=""></mail-window-form> <question-yes-no window-identifier="removeDocumentQuestionWindow" title-window="{{'SPECIALIZED.CORRECTION.REMOVE.TITLE' | translate }}" title="'{{'SPECIALIZED.CORRECTION.REMOVE.TITLE_MESSAGE' | translate }}'" message="{{'SPECIALIZED.CORRECTION.REMOVE.MESSAGE' | translate }}" yes-event="corr:remove::question::yes" no-event="corr:remove::question::no" icon="images/nimages/bin.png" icon-height="70px" icon-width="70px"> </question-yes-no></div>