Objective:

License Error

The license of the app Translations for Confluence (formerly Language Macros) has expired. Please renew the license.

License Error

The license of the app Translations for Confluence (formerly Language Macros) has expired. Please renew the license.

Code:

Change "gridId" to your form grid "Field Id".

To compare certain columns only instead of all columns, modify '$(row).find(".grid-cell")' to '$(row).find("[KB:column_key=field1], [KB:column_key=field2]")'.  (Take note that this is separated by a comma.)

License Error

The license of the app Translations for Confluence (formerly Language Macros) has expired. Please renew the license.

<script>
    $(document).ready(function(){
        var formGridFieldId = "gridId";

        //run when form grid value change
        $("[name="+formGridFieldId+"]").live("change", function(){
            var table = $(this).find("table");

            //get last added row
            var addedRow = $(table).find("tr.grid-row:last-child");

            var duplicate = false;

            //Loop all the row and compare all the field
            $(table).find("tr.grid-row").each(function(){
                var row = $(this);

                if ($(row).attr("id") != $(addedRow).attr("id")) {
                    var similar = true;

                    //Loop all field
                    //Change '$(row).find(".grid-cell")' to '$(row).find("[column_key=field1], [column_key=field2]")'
                    //if only want to compare to certain fields. Separate with comma.

                    $(row).find(".grid-cell").each(function(){
                        var field = $(this);

                        var columnKey = $(field).attr("column_key");
                        var value = $(field).text();

                        var newValue = $(addedRow).find("[column_key="+columnKey+"]").text();

                        if (value != newValue) {
                            similar = false;
                            return false;
                        }
                    });

                    if (similar) {
                        duplicate = true;
                        return false;
                    }
                }
            });

            //if record is duplicate, remove it
            if (duplicate) {
                $(addedRow).remove();
            }
        });
    });
</script>
  • No labels