Compare commits
50 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a94f3100df | |||
| 5d341a684e | |||
| 26723c1b60 | |||
| de7430eeb8 | |||
| 89ffc6b4cc | |||
| a18120f17d | |||
| 2846fc7dc5 | |||
| e6c5232ae8 | |||
| e7ab8b322b | |||
| fde34bb53b | |||
| 60c0843861 | |||
| 2ae2ca5c7d | |||
| 9747d1deea | |||
| e52d0a7a90 | |||
| eefd3e13e4 | |||
| 918317434f | |||
| 8dfc5381cd | |||
| 6511a80b47 | |||
| a5074e9478 | |||
| b90808525c | |||
| fedfabc87e | |||
| 891b9d2e34 | |||
| 3b0579afc3 | |||
| 5e763026a4 | |||
| de706de317 | |||
| b884dc0e4c | |||
| aaba2ec347 | |||
| bdd44b57fd | |||
| 8deb444a6c | |||
| ca3158a6ff | |||
| 53a9cfc83f | |||
| 92fc8f8dcb | |||
| 7a488c2fd4 | |||
| 98ff7693f3 | |||
| 6b7258dfe0 | |||
| aceee07544 | |||
| 9e670d51bd | |||
| 8e97b25f38 | |||
| 6aeeafe74d | |||
| 4189799d45 | |||
| 5bfe514f45 | |||
| aa35dbfb82 | |||
| 784ab0c3c7 | |||
| 5847bb0e17 | |||
| 08ac0b0996 | |||
| c38ccf22ed | |||
| 1866b7ace1 | |||
| 27b7676caa | |||
| c273926941 | |||
| ba8392923a |
@@ -1,18 +0,0 @@
|
||||
# Make Github recognise Gramps as a Python project,
|
||||
# by marking .sql files as text files!
|
||||
# See: https://github.com/github/linguist/issues/2462
|
||||
# https://github.com/github/linguist/blob/master/README.md
|
||||
*.sql linguist-language=txt
|
||||
|
||||
# Have Github ignore js vendored files.
|
||||
# https://github.com/gramps-project/gramps/tree/master/data/javascript
|
||||
#data/javascript/*.js linguist-vendored
|
||||
|
||||
# don't mess with line endings for test files
|
||||
*.vcs -text
|
||||
*.ged -text
|
||||
*.GED -text
|
||||
*.csv -text
|
||||
*.DEF -text
|
||||
*.IXI -text
|
||||
*.REM -text
|
||||
@@ -8,7 +8,7 @@ dist/
|
||||
|
||||
# Gramps
|
||||
data/tips.xml
|
||||
data/holidays.xml
|
||||
gramps/plugins/lib/holidays.xml
|
||||
po/.intltool-merge-cache
|
||||
docs/_build/
|
||||
|
||||
@@ -18,13 +18,4 @@ tags
|
||||
|
||||
# Testing
|
||||
test/data
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
|
||||
# Glade temp files
|
||||
*~
|
||||
gramps/webapp/grampsdb/fixtures/initial_data.json
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
<benny.malengier@gramps-project.org> <benny.malengier@gmail.com>
|
||||
<doug.blank@gmail.com> <dsblank@bitbucket.org>
|
||||
<doug.blank@gmail.com> <dblank@cs.brynmawr.edu>
|
||||
<beernarrd@gmail.com> <beernarrd@users.sourceforge.net>
|
||||
<igal.shapira@gmail.com> <igalshapira@users.sourceforge.net>
|
||||
<romjerome@yahoo.fr> <romjerome@users.noreply.github.com>
|
||||
<jralls@ceridwen.us> <john@aeolus.local>
|
||||
<josip@pisoj.com> <bpisoj@gmail.com>
|
||||
Josip Pisoj <josip@pisoj.com>
|
||||
Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
<martin.hawlisch@gmx.de> <loshawlos@users.sourceforge.net>
|
||||
Matti Niemelä <matti.u.niemela@gmail.com> <niememat@gmail.com>
|
||||
<nick-h@gramps-project.org> <nick__hall@hotmail.com>
|
||||
<nick-h@gramps-project.org> <Nick-Hall@users.noreply.github.com>
|
||||
Ondrej Krč-Jediný <hou@centrum.sk>
|
||||
<hou@centrum.sk> <ondrisko@users.sourceforge.com>
|
||||
Pierre Bélissent <pierre.belissent@gmail.com>
|
||||
Serge Noiraud <Serge.Noiraud@free.fr>
|
||||
<Serge.Noiraud@free.fr> <serge.noiraud@free.fr>
|
||||
<Serge.Noiraud@free.fr> <serge.noiraud@laposte.net>
|
||||
Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
<zdenek.hatas@gmail.com> <zdenek.hatas@hp.com>
|
||||
<zdenek.hatas@gmail.com> <zenhas@users.sourceforge.net>
|
||||
<gerald@gkunzmann.de> <g.kunzmann@arcor.de>
|
||||
Tim G L Lyons <tim.g.lyons@gmail.com>
|
||||
<tim.g.lyons@gmail.com> <guy.linton@gmail.com>
|
||||
Elder Evans <elderamevans@gmail.com>
|
||||
|
||||
@@ -1,378 +0,0 @@
|
||||
[MASTER]
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
#init-hook=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=CVS
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=yes
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=
|
||||
|
||||
# Use multiple processes to speed up Pylint.
|
||||
jobs=1
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Allow optimization of some AST trees. This will activate a peephole AST
|
||||
# optimizer, which will apply various small optimizations. For instance, it can
|
||||
# be used to obtain the result of joining multiple strings with the addition
|
||||
# operator. Joining a lot of strings can lead to a maximum recursion error in
|
||||
# Pylint and this flag can prevent that. It has one side effect, the resulting
|
||||
# AST will be different than the one from reality.
|
||||
optimize-ast=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED
|
||||
confidence=
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
# multiple time. See also the "--disable" option for examples.
|
||||
#enable=
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once).You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use"--disable=all --enable=classes
|
||||
# --disable=W"
|
||||
disable=suppressed-message,intern-builtin,round-builtin,unicode-builtin,range-builtin-not-iterating,long-builtin,basestring-builtin,setslice-method,print-statement,reload-builtin,metaclass-assignment,raising-string,next-method-called,import-star-module-level,xrange-builtin,getslice-method,zip-builtin-not-iterating,reduce-builtin,dict-iter-method,delslice-method,using-cmp-argument,hex-method,buffer-builtin,old-ne-operator,nonzero-method,backtick,parameter-unpacking,indexing-exception,file-builtin,filter-builtin-not-iterating,raw_input-builtin,execfile-builtin,oct-method,cmp-method,coerce-builtin,long-suffix,cmp-builtin,input-builtin,dict-view-method,standarderror-builtin,apply-builtin,old-raise-syntax,unichr-builtin,old-division,coerce-method,unpacking-in-except,useless-suppression,no-absolute-import,map-builtin-not-iterating,old-octal-literal
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Set the output format. Available formats are text, parseable, colorized, msvs
|
||||
# (visual studio) and html. You can also give a reporter class, eg
|
||||
# mypackage.mymodule.MyReporterClass.
|
||||
output-format=text
|
||||
|
||||
# Put messages in a separate file for each module / package specified on the
|
||||
# command line instead of printing them on stdout. Reports (if any) will be
|
||||
# written in a file name "pylint_global.[txt|html]".
|
||||
files-output=no
|
||||
|
||||
# Tells whether to display a full report or only the messages
|
||||
reports=yes
|
||||
|
||||
# Python expression which should return a note less than 10 (10 is the highest
|
||||
# note). You have access to the variables errors warning, statement which
|
||||
# respectively contain the number of errors / warnings messages and the total
|
||||
# number of statements analyzed. This is used by the global evaluation report
|
||||
# (RP0004).
|
||||
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
|
||||
|
||||
# Template used to display messages. This is a python new-style format string
|
||||
# used to format the message information. See doc for all details
|
||||
#msg-template=
|
||||
|
||||
|
||||
[BASIC]
|
||||
|
||||
# List of builtins function names that should not be used, separated by a comma
|
||||
bad-functions=map,filter
|
||||
|
||||
# Good variable names which should always be accepted, separated by a comma
|
||||
good-names=i,j,k,ex,Run,_,db
|
||||
|
||||
# Bad variable names which should always be refused, separated by a comma
|
||||
bad-names=foo,bar,baz,toto,tutu,tata
|
||||
|
||||
# Colon-delimited sets of names that determine each other's naming style when
|
||||
# the name regexes allow several styles.
|
||||
name-group=
|
||||
|
||||
# Include a hint for the correct naming format with invalid-name
|
||||
include-naming-hint=no
|
||||
|
||||
# Regular expression matching correct argument names
|
||||
argument-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for argument names
|
||||
argument-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct module names
|
||||
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||
|
||||
# Naming hint for module names
|
||||
module-name-hint=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||
|
||||
# Regular expression matching correct class attribute names
|
||||
class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Naming hint for class attribute names
|
||||
class-attribute-name-hint=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$
|
||||
|
||||
# Regular expression matching correct function names
|
||||
function-rgx=(([a-z_][a-z0-9_]{2,30})|(_T_))$
|
||||
|
||||
# Naming hint for function names
|
||||
function-name-hint=(([a-z_][a-z0-9_]{2,30})|(_T_))$
|
||||
|
||||
# Regular expression matching correct inline iteration names
|
||||
inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
# Naming hint for inline iteration names
|
||||
inlinevar-name-hint=[A-Za-z_][A-Za-z0-9_]*$
|
||||
|
||||
# Regular expression matching correct constant names
|
||||
const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
|
||||
|
||||
# Naming hint for constant names
|
||||
const-name-hint=(([A-Z_][A-Z0-9_]*)|(__.*__))$
|
||||
|
||||
# Regular expression matching correct method names
|
||||
method-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for method names
|
||||
method-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct class names
|
||||
class-rgx=[A-Z_][a-zA-Z0-9]+$
|
||||
|
||||
# Naming hint for class names
|
||||
class-name-hint=[A-Z_][a-zA-Z0-9]+$
|
||||
|
||||
# Regular expression matching correct variable names
|
||||
variable-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for variable names
|
||||
variable-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression matching correct attribute names
|
||||
attr-rgx=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Naming hint for attribute names
|
||||
attr-name-hint=[a-z_][a-z0-9_]{2,30}$
|
||||
|
||||
# Regular expression which should only match function or class names that do
|
||||
# not require a docstring.
|
||||
no-docstring-rgx=^_
|
||||
|
||||
# Minimum line length for functions/classes that require docstrings, shorter
|
||||
# ones are exempt.
|
||||
docstring-min-length=-1
|
||||
|
||||
|
||||
[ELIF]
|
||||
|
||||
# Maximum number of nested blocks for function / method body
|
||||
max-nested-blocks=5
|
||||
|
||||
|
||||
[LOGGING]
|
||||
|
||||
# Logging modules to check that the string format arguments are in logging
|
||||
# function parameter format
|
||||
logging-modules=logging
|
||||
|
||||
|
||||
[SPELLING]
|
||||
|
||||
# Spelling dictionary name. Available dictionaries: none. To make it working
|
||||
# install python-enchant package.
|
||||
spelling-dict=
|
||||
|
||||
# List of comma separated words that should not be checked.
|
||||
spelling-ignore-words=
|
||||
|
||||
# A path to a file that contains private dictionary; one word per line.
|
||||
spelling-private-dict-file=
|
||||
|
||||
# Tells whether to store unknown words to indicated private dictionary in
|
||||
# --spelling-private-dict-file option instead of raising a message.
|
||||
spelling-store-unknown-words=no
|
||||
|
||||
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,XXX,TODO
|
||||
|
||||
|
||||
[TYPECHECK]
|
||||
|
||||
# Tells whether missing members accessed in mixin class should be ignored. A
|
||||
# mixin class is detected if its name ends with "mixin" (case insensitive).
|
||||
ignore-mixin-members=yes
|
||||
|
||||
# List of module names for which member attributes should not be checked
|
||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||
# supports qualified module names, as well as Unix pattern matching.
|
||||
ignored-modules=
|
||||
|
||||
# List of classes names for which member attributes should not be checked
|
||||
# (useful for classes with attributes dynamically set). This supports can work
|
||||
# with qualified names.
|
||||
ignored-classes=
|
||||
|
||||
# List of members which are set dynamically and missed by pylint inference
|
||||
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||
# expressions are accepted.
|
||||
generated-members=
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
# Minimum lines number of a similarity.
|
||||
min-similarity-lines=4
|
||||
|
||||
# Ignore comments when computing similarities.
|
||||
ignore-comments=yes
|
||||
|
||||
# Ignore docstrings when computing similarities.
|
||||
ignore-docstrings=yes
|
||||
|
||||
# Ignore imports when computing similarities.
|
||||
ignore-imports=no
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=80
|
||||
|
||||
# Regexp for a line that is allowed to be longer than the limit.
|
||||
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
|
||||
|
||||
# Allow the body of an if to be on the same line as the test if there is no
|
||||
# else.
|
||||
single-line-if-stmt=no
|
||||
|
||||
# List of optional constructs for which whitespace checking is disabled. `dict-
|
||||
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
|
||||
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
|
||||
# `empty-line` allows space-only lines.
|
||||
no-space-check=trailing-comma,dict-separator
|
||||
|
||||
# Maximum number of lines in a module
|
||||
max-module-lines=1000
|
||||
|
||||
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||
# tab).
|
||||
indent-string=' '
|
||||
|
||||
# Number of spaces of indent required inside a hanging or continued line.
|
||||
indent-after-paren=4
|
||||
|
||||
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
|
||||
expected-line-ending-format=
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
# Tells whether we should check for unused import in __init__ files.
|
||||
init-import=no
|
||||
|
||||
# A regular expression matching the name of dummy variables (i.e. expectedly
|
||||
# not used).
|
||||
dummy-variables-rgx=_$|dummy
|
||||
|
||||
# List of additional names supposed to be defined in builtins. Remember that
|
||||
# you should avoid to define new builtins when possible.
|
||||
additional-builtins=
|
||||
|
||||
# List of strings which can identify a callback function by name. A callback
|
||||
# name must start or end with one of those strings.
|
||||
callbacks=cb_,_cb
|
||||
|
||||
|
||||
[CLASSES]
|
||||
|
||||
# List of method names used to declare (i.e. assign) instance attributes.
|
||||
defining-attr-methods=__init__,__new__,setUp
|
||||
|
||||
# List of valid names for the first argument in a class method.
|
||||
valid-classmethod-first-arg=cls
|
||||
|
||||
# List of valid names for the first argument in a metaclass class method.
|
||||
valid-metaclass-classmethod-first-arg=mcs
|
||||
|
||||
# List of member names, which should be excluded from the protected access
|
||||
# warning.
|
||||
exclude-protected=_asdict,_fields,_replace,_source,_make
|
||||
|
||||
|
||||
[IMPORTS]
|
||||
|
||||
# Deprecated modules which should not be used, separated by a comma
|
||||
deprecated-modules=optparse
|
||||
|
||||
# Create a graph of every (i.e. internal and external) dependencies in the
|
||||
# given file (report RP0402 must not be disabled)
|
||||
import-graph=
|
||||
|
||||
# Create a graph of external dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
ext-import-graph=
|
||||
|
||||
# Create a graph of internal dependencies in the given file (report RP0402 must
|
||||
# not be disabled)
|
||||
int-import-graph=
|
||||
|
||||
|
||||
[DESIGN]
|
||||
|
||||
# Maximum number of arguments for function / method
|
||||
max-args=5
|
||||
|
||||
# Argument names that match this expression will be ignored. Default to name
|
||||
# with leading underscore
|
||||
ignored-argument-names=_.*
|
||||
|
||||
# Maximum number of locals for function / method body
|
||||
max-locals=15
|
||||
|
||||
# Maximum number of return / yield for function / method body
|
||||
max-returns=6
|
||||
|
||||
# Maximum number of branch for function / method body
|
||||
max-branches=12
|
||||
|
||||
# Maximum number of statements in function / method body
|
||||
max-statements=50
|
||||
|
||||
# Maximum number of parents for a class (see R0901).
|
||||
max-parents=7
|
||||
|
||||
# Maximum number of attributes for a class (see R0902).
|
||||
max-attributes=7
|
||||
|
||||
# Minimum number of public methods for a class (see R0903).
|
||||
min-public-methods=2
|
||||
|
||||
# Maximum number of public methods for a class (see R0904).
|
||||
max-public-methods=20
|
||||
|
||||
# Maximum number of boolean expressions in a if statement
|
||||
max-bool-expr=5
|
||||
|
||||
|
||||
[EXCEPTIONS]
|
||||
|
||||
# Exceptions that will emit a warning when being caught. Defaults to
|
||||
# "Exception"
|
||||
overgeneral-exceptions=Exception
|
||||
@@ -1,129 +1,29 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2015-2015 Doug Blank
|
||||
# Copyright (C) 2016 DaAwesomeP
|
||||
# Copyright (C) 2016 QuLogic
|
||||
# Copyright (C) 2016 Tim G L Lyons
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
# After changing this file, check it on:
|
||||
# http://lint.travis-ci.org/
|
||||
|
||||
sudo: required
|
||||
dist: trusty
|
||||
language: python
|
||||
python:
|
||||
- 3.3 # This is irrelevant, because the virtualenv is not used at all
|
||||
|
||||
# FIXME: The minimum requirement for Gramps is Python 3.2, so a test environment
|
||||
# for Python 3.2 should be added to this environment which is Python 3.3. It
|
||||
# will not be possible to run coverage under Python 3.2, because coverage is
|
||||
# Python 3.3 (or above) only.
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- gir1.2-pango-1.0
|
||||
- gir1.2-gtk-3.0
|
||||
- xdg-utils
|
||||
- librsvg2-common
|
||||
- libglib2.0-dev
|
||||
- intltool
|
||||
# - python3-gobject Provided by python3-gi
|
||||
- python3-gi
|
||||
- python3-cairo
|
||||
- python3-gi-cairo
|
||||
- python3-bsddb3
|
||||
- python3-dev
|
||||
- python3-nose
|
||||
- python3-mock
|
||||
- python3-pyicu
|
||||
- python3-coverage
|
||||
- python3-jsonschema
|
||||
# lxml dependencies. for merge_ref_test to work
|
||||
# - libxml2-dev
|
||||
# - libxslt1-dev
|
||||
- libxml2-utils
|
||||
- python3-lxml
|
||||
- python-libxml2
|
||||
# ubuntu 14.04 requires this in addition to libxml2-dev and
|
||||
# libxslt1-dev for compiling lxml.
|
||||
# https://github.com/deanmalmgren/textract/issues/19
|
||||
- zlib1g-dev
|
||||
|
||||
before_install:
|
||||
language: c
|
||||
#python:
|
||||
# - 3.3
|
||||
# - 3.4
|
||||
|
||||
install:
|
||||
# The working directory is set to /home/travis/build/gramps-project/gramps
|
||||
# by the automatic git checkout.
|
||||
- git clone --depth=50 --branch=maintenance/gramps42 git://github.com/gramps-project/gramps.git gramps-project/gramps
|
||||
- cd gramps-project/gramps
|
||||
- time sudo apt-get update
|
||||
- travis_retry sudo apt-get install gir1.2-pango gir1.2-gtk xdg-utils librsvg2-common libglib2.0-dev intltool
|
||||
- travis_retry sudo apt-get install python3-gobject python3-gi python3-cairo python3-gi-cairo python3-bsddb3 python3-dev python3-nose
|
||||
|
||||
# Download Sean Ross-Ross's Pure Python module containing a framework to
|
||||
# manipulate and analyze python ast�s and bytecode. This is loaded to
|
||||
# /home/travis/build/gramps-project/gramps/meta
|
||||
# FIXME: This should be loaded from the release directory at
|
||||
# https://pypi.python.org/pypi/meta
|
||||
- git clone -b master https://github.com/srossross/meta
|
||||
- travis_retry curl https://bootstrap.pypa.io/get-pip.py | sudo python3
|
||||
- travis_retry sudo pip3 install Django==1.7
|
||||
- travis_retry sudo pip3 install pyicu==1.8
|
||||
- travis_retry sudo pip3 install mock
|
||||
- python3 setup.py build
|
||||
|
||||
# Build Gramps package. This seems to copy everything to
|
||||
# /home/travis/build/scripts-3.3
|
||||
- python setup.py build
|
||||
|
||||
before_script:
|
||||
# Create the Gramps database directory.
|
||||
- mkdir -p ~/.gramps/grampsdb/
|
||||
# set PYTHONPATH so the directly installed module (meta) is picked up from
|
||||
# /home/travis/build/gramps-project/gramps/meta
|
||||
- export PYTHONPATH=meta
|
||||
# set module exclusions. --exclude=TestUser because of older version of mock
|
||||
# without configure_mock
|
||||
- export EXCLUDE="--exclude=TestcaseGenerator"
|
||||
# --exclude=merge_ref_test"
|
||||
# set GRAMPS_RESOURCES for locale, data,image and documentation
|
||||
- export GRAMPS_RESOURCES=.
|
||||
# Install addons
|
||||
- mkdir -p ~/.gramps/gramps51/plugins/
|
||||
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz
|
||||
- tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz
|
||||
- wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz
|
||||
- tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz
|
||||
#before_script:
|
||||
# - sudo Xvfb :99 -ac &
|
||||
# - export DISPLAY=:99
|
||||
|
||||
script:
|
||||
# Ignore the virtualenv entirely. Use nosetests3, python3 (3.4.0) and coverage
|
||||
# from /usr/bin. Use libraries from /usr/lib/python3.4,
|
||||
# /usr/local/lib/python3.4/dist-packages and /usr/lib/python3/dist-packages
|
||||
- nosetests3 --nologcapture --with-coverage --cover-package=gramps $EXCLUDE
|
||||
gramps
|
||||
# FIXME: This should have run from the current directory, rather than from
|
||||
# gramps, because there is some test code in that directory.
|
||||
|
||||
# give an error for any trailing whitespace
|
||||
- if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then
|
||||
echo "ERROR - Trailing whitespace found in source file(s)";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
after_success:
|
||||
# apt-get installs python3-coverage, but codecov only invokes coverage, so make
|
||||
# a link
|
||||
- sudo ln /usr/bin/python3-coverage /usr/bin/coverage
|
||||
|
||||
# We have to use the bash script because the apt-get coverage does not install
|
||||
# codecov. If we used pip to install codecov, it would run inside the
|
||||
# virtualenv, and that doesn't work. Change the path to ensure that codecov
|
||||
# picks up coverage from /usr/bin, rather than from
|
||||
# /home/travis/virtualenv/python3.3.6/bin/
|
||||
- PATH=/usr/bin:$PATH bash <(curl -s https://codecov.io/bash)
|
||||
- mkdir -p /home/travis/.gramps/grampsdb/
|
||||
- DJANGO_SETTINGS_MODULE=gramps.webapp.settings nosetests3 --exclude=TestcaseGenerator --exclude=vcard --exclude=merge_ref_test gramps
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<!-- $Id$ -->
|
||||
|
||||
|
||||
Alex Roitman shura@gramps-project.org
|
||||
@@ -64,8 +65,6 @@ Martin Hawlisch martin.hawlisch@gmx.de
|
||||
|
||||
Nick Hall nick__hall@hotmail.com
|
||||
|
||||
Paul Culley paulr2787@gmail.com
|
||||
|
||||
Peter Landgren peter.talken@telia.com
|
||||
|
||||
Raphael Ackermann raphael.ackermann@gmail.com
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
See developer documentation at:
|
||||
https://gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
https://gramps-project.org/wiki/index.php?title=Brief_introduction_to_Git#Making_a_patchfile
|
||||
https://gramps-project.org/wiki/index.php?title=Brief_introduction_to_Git#Making_a_PR
|
||||
|
||||
If you are interested in translating:
|
||||
* The Gramps program to your language see:
|
||||
https://gramps-project.org/wiki/index.php?title=Translating_Gramps
|
||||
https://gramps-project.org/wiki/index.php?title=Portal:Translators
|
||||
|
||||
* The Gramps user manual to your language see:
|
||||
https://gramps-project.org/wiki/index.php?title=Translating_the_Gramps_User_manual
|
||||
@@ -1,458 +0,0 @@
|
||||
2021-07-26 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* gramps/gen/const.py: Update copyright date
|
||||
|
||||
2021-07-23 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/gen/utils/alive.py: Probably alive incorrect if death
|
||||
without date
|
||||
|
||||
2021-07-10 SNoiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/gui/editors/editplace.py,
|
||||
gramps/gui/editors/editplaceref.py: Place editor, copy and paste of
|
||||
lat and long text no longer auto-populating latitude and longitude fields.
|
||||
Fixes #12349
|
||||
|
||||
2021-06-25 prculley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/viewmanager.py: Fix for crash when changing views if
|
||||
part of toolbar is not shown because of a small screen when changing
|
||||
views. Fixes #12048
|
||||
|
||||
2021-06-25 prculley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/views/pageview.py: Fix bottombar always showing after
|
||||
restart, even when not wanted. Fixes #12338
|
||||
|
||||
2021-07-09 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update and fix Simplified Chinese translation
|
||||
|
||||
2021-07-16 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: fixed small German translation error for item also fixed
|
||||
in Weblate GUI for master
|
||||
|
||||
2021-06-28 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update Simplified Chinese translation
|
||||
|
||||
2021-07-05 pehlm <par.ekholm@pekholm.org>
|
||||
|
||||
* po/sv.po: One update Swedish translation
|
||||
|
||||
2021-07-03 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* gramps/plugins/db/dbapi/dbapi.py: Better to use
|
||||
locale.get_collation than locale.collation.
|
||||
|
||||
2021-07-03 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* gramps/plugins/db/dbapi/dbapi.py: Wrap call to
|
||||
dbapi.check_collection to prevent a forced API change.
|
||||
|
||||
2021-07-01 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.modules: Fix URL for berkeleydb patch.
|
||||
|
||||
2021-07-01 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* gramps/plugins/db/dbapi/dbapi.py,
|
||||
gramps/plugins/db/dbapi/sqlite.py: Always use filtered collation
|
||||
names. Store the Sqlite3 collations in the __collations array to
|
||||
short-circuit re-creation. Fixes #12343
|
||||
|
||||
2021-06-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Fixed different German translations for "What's next"
|
||||
also fixed in master (Weblate)
|
||||
|
||||
2021-06-23 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* gramps/plugins/rel/rel_de.py: German relation calculator fixed
|
||||
issue if more then 24 generations between the two person
|
||||
|
||||
2021-06-22 Matti Niemelä <matti.u.niemela@gmail.com>
|
||||
|
||||
* po/fi.po: Fix translation in Finnish
|
||||
|
||||
2021-06-17 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Correct and improve Simplified Chinese translation.
|
||||
Correct some terribly wrong and low quality translation, even machine
|
||||
translation. Improve some existing translation for better user experience
|
||||
as a software, use more written language.
|
||||
|
||||
2021-05-31 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Improve and correct Simplified Chinese translation
|
||||
|
||||
2021-05-27 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Improve and correct the Simplified Chinese
|
||||
translation
|
||||
|
||||
2021-05-21 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update and improve Simplified Chinese translation
|
||||
|
||||
2021-05-17 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update Simplified Chinese translation
|
||||
|
||||
2020-09-26 Jan Sparreboom <jan@sparreboom.net>
|
||||
|
||||
* gramps/gen/datehandler/_date_nl.py, gramps/plugins/rel/rel_nl.py,
|
||||
po/nl.po: Update Dutch translation
|
||||
|
||||
2021-05-07 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Correct and Update Simplified Chinese translation
|
||||
|
||||
2020-10-13 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update Simplified Chinese translation
|
||||
|
||||
2021-05-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Corrected some German translation errors found during
|
||||
handbook revision
|
||||
|
||||
2021-05-04 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* gramps/grampsapp.py: Add file logging for macOS. When Gramps is launched
|
||||
from macOS's LaunchServices it doesn't have a sys.stderr attached so the
|
||||
default stream logger goes to /dev/null. Use a FileHandler in tht case,
|
||||
writing the log to $TMPDIR/gramps-pid.log. This will help particularly in
|
||||
analyzing crashes where python shuts down as there's no crash report in
|
||||
that case.
|
||||
|
||||
2021-05-06 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.modules: Update PyICU to 2.7.2 in macOS build.
|
||||
|
||||
2021-05-06 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/lib/libplaceview.py: Fix libplaceview to avoid
|
||||
exception when mapservice is no longer present (#1193) Fixes #12263
|
||||
|
||||
2021-05-06 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/gramplet/backlinks.py: Fix References Gramplet for
|
||||
inadequate updates when other objects change (#1192) Fixes #12248
|
||||
|
||||
2021-05-06 Serge Noiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/plugins/view/geofamily.py: geofamily crashes if a family
|
||||
has no father (#1188)
|
||||
|
||||
2021-05-06 Serge Noiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/gen/merge/mergepersonquery.py: Home Person setting does not
|
||||
convey in a merge. Fixes #12235
|
||||
|
||||
2021-05-06 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/utils/docgen/csvtab.py: Fix CSV export of view to only
|
||||
put single CR character. (#1186) Fixes #12158
|
||||
|
||||
2021-05-06 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/filters/rules/media/__init__.py: Add Media filter rule
|
||||
'HasMedia' to list of media rules for editor (#1182) Fixes #12212
|
||||
|
||||
2021-04-28 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: corrected German translation of "confidence"
|
||||
|
||||
2021-04-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: German corrected translation of 'attribute'
|
||||
|
||||
2021-04-25 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Fixed translation error of "display name editor" into
|
||||
German
|
||||
|
||||
2021-04-24 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: some translation fixes for German
|
||||
|
||||
2021-04-24 pehlm <par.ekholm@pekholm.org>
|
||||
|
||||
* po/sv.po: Changed immigration too, Swedish
|
||||
|
||||
2021-04-24 pehlm <par.ekholm@pekholm.org>
|
||||
|
||||
* po/sv.po: Correction of Swedish translation
|
||||
|
||||
2021-04-22 Helder Geovane Gomes de Lima <he7d3r@gmail.com>
|
||||
|
||||
* po/pt_BR.po: Update Portuguese translation (pt_BR) (#1199)
|
||||
This pull request is an updated version of the patch I've provided
|
||||
at <https://gramps-project.org/bugs/view.php?id=10547> in 2018, now
|
||||
based on branch 5.1
|
||||
|
||||
2021-04-19 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Corrected translation of markup in German translation
|
||||
|
||||
2021-04-17 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Fixed translation of tags in German translation
|
||||
|
||||
2021-04-14 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: German translation for type unified
|
||||
|
||||
2021-04-13 romjerome <romjerome@yahoo.fr>
|
||||
|
||||
* po/fr.po: 11656: typo, spelling correction contribution by Philippe
|
||||
|
||||
2021-04-13 romjerome <romjerome@yahoo.fr>
|
||||
|
||||
* gramps/gen/utils/grampslocale.py: Need to set locale.textdomain
|
||||
under linux (#1198) _build_popup_ui() ignores translated strings without
|
||||
locale.textdomain set.
|
||||
|
||||
2021-04-13 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Fixed German translation of number for places
|
||||
|
||||
2021-04-11 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.bundle, mac/gramps.modules,
|
||||
mac/patches/berkeleydb-4.8-atomic.patch: Update dependencies.
|
||||
Includes moving berkeleydb and pybsddb over from gtk-osx.
|
||||
|
||||
2021-03-21 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Some small fixes in German translation
|
||||
|
||||
2021-03-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Update German translation for csv import/export
|
||||
|
||||
2021-03-01 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: small fix in German translation
|
||||
|
||||
2021-02-19 Matthias Kemmer <49940207+Mattkmmr@users.noreply.github.com>
|
||||
|
||||
* gramps/gen/filters/rules/person/_matcheseventfilter.py: Change
|
||||
category of 'MatchesEventFilter' (#1130)
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/viewmanager.py, gramps/gui/views/pageview.py: Fix issue
|
||||
where separator between top and bottom bar of View creeps up.
|
||||
(#1122) Fixes #11973
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/gramplet/locations.py: Fix Locations Gramplet
|
||||
(Enclosed by) to properly display certain nested places. (#1127)
|
||||
when the smallest place has undated enclosure and larger places are dated.
|
||||
Issue #11691
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/dbman.py: Fix Family Tree Manager drop error on Windows
|
||||
(#1132) Fixes #10734
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/export/exportvcalendar.py: Fix exportvcalendar
|
||||
error is "is not" with a literal (Python 3.8 issue) (#1135) Fixes #12000
|
||||
|
||||
2021-02-19 Serge Noiraud <Serge.Noiraud@free.fr>
|
||||
|
||||
* gramps/gui/clipboard.py: Handle not found when copying source from
|
||||
the citation tree (#1175) Fixes #12170
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/dbloader.py: DbLoader: Fix call to 'file' function,
|
||||
which doesn't exist in Python3 (#1173)
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/db/utils.py: Fix write_lock_file exception when
|
||||
USERNAME is missing (#1171) Fixes #12150
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/glade/editplace.glade: Fix EditPlace so Tab key doesn't
|
||||
get stuck on Private icon (#1168) Fixes #12139
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/textreport/tagreport.py: Fix Tag report for places
|
||||
that have a hierarchy. (#1162) Fixes #12124
|
||||
|
||||
2021-02-19 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/viewmanager.py: Fix exception when cancelling out of a
|
||||
db upgrade in GUI (#1154) Fixes #12063
|
||||
|
||||
2021-02-12 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: additional small German translation fixes
|
||||
|
||||
2021-02-11 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: Small fixes German translation
|
||||
|
||||
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: fix wrong translation of source text in German
|
||||
translation
|
||||
|
||||
2021-02-06 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: fixed small error in German translation
|
||||
|
||||
2021-01-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: small fixes German translation
|
||||
|
||||
2020-11-06 Chris Mayo <aklhfex@gmail.com>
|
||||
|
||||
* setup.py: Install 128x128 and 256x256 application icons created with
|
||||
ImageMagick using e.g.:
|
||||
convert -background none ../../../gramps.svg -geometry 256x256 gramps.png
|
||||
|
||||
2020-11-06 Chris Mayo <aklhfex@gmail.com>
|
||||
|
||||
* data/{gnome-mime-application-x-gedcom.svg =>
|
||||
application-x-gedcom.svg},
|
||||
data/{gnome-mime-application-x-geneweb.svg =>
|
||||
application-x-geneweb.svg},
|
||||
data/{gnome-mime-application-x-gramps-package.svg =>
|
||||
application-x-gramps-package.svg},
|
||||
data/{gnome-mime-application-x-gramps-xml.svg =>
|
||||
application-x-gramps-xml.svg},
|
||||
data/{gnome-mime-application-x-gramps.svg =>
|
||||
application-x-gramps.svg},
|
||||
setup.py: Install MIME type icons into the hicolor theme.
|
||||
The gnome theme is defunct. Remove gnome-mime- prefix from icon filenames.
|
||||
|
||||
2020-08-20 Nick Hall <nick-h@gramps-project.org>
|
||||
|
||||
* images/hicolor/scalable/{actions => apps}/gramps.svg, setup.py:
|
||||
Install application icons into correct directories
|
||||
|
||||
2020-10-15 vantu5z <vantu5z@mail.ru>
|
||||
|
||||
* po/ru.po: Update Russian translation
|
||||
|
||||
2020-09-25 Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
|
||||
* po/cs.po: Update Czech translation - typo fixes
|
||||
|
||||
2020-09-06 Tian Shixiong <tiansworld@fedoraproject.org>
|
||||
|
||||
* po/zh_CN.po: Update Simplified Chinese translation
|
||||
|
||||
2020-08-16 Jan Sparreboom <jan@sparreboom.net>
|
||||
|
||||
* po/nl.po: Update Dutch translation
|
||||
|
||||
2020-04-21 Lajos Nemeséri <nemeseril@gmail.com>
|
||||
|
||||
* po/hu.po: Revised and updated hu translation
|
||||
|
||||
2020-09-13 Juan Saavedra <jcsaaver@gmail.com>
|
||||
|
||||
* po/es.po: Update Spanish translation
|
||||
|
||||
2020-09-15 bokfink <62996239+bokfink@users.noreply.github.com>
|
||||
|
||||
* gramps/plugins/textreport/birthdayreport.py: Fix error in Birthday
|
||||
and Anniversary report (#1113) Fixes an error triggered when the first
|
||||
person_handle in the list has a death event, but no birth event
|
||||
(get_birth_ref() == None) and does not have family relationships
|
||||
(spouse_handle == None). These conditions lead to the local variable
|
||||
short_name not being declared before it comes time to process death events.
|
||||
Fixes #11766
|
||||
|
||||
2020-09-14 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gen/plug/docgen/graphdoc.py: Fix graphdoc to properly
|
||||
escape characters in ids for Graphviz (#1111) Fixes #11741
|
||||
|
||||
2020-09-14 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* gramps/gen/db/dummydb.py, gramps/gen/db/txn.py,
|
||||
gramps/gen/db/utils.py, gramps/gen/dbstate.py,
|
||||
gramps/gen/filters/rules/test/person_rules_test.py,
|
||||
gramps/gen/utils/callback.py, gramps/plugins/db/bsddb/bsddbtxn.py:
|
||||
Replace inspect.stack() with inspect.currentframe() (#1104)
|
||||
* Replace inspect.stack() with inspect.currentframe() Fixes #11874
|
||||
Works around https://bugs.python.org/issue12920 which causes every
|
||||
call to inspect.trace() to fail because __main__ is always the
|
||||
starting point. * Fix a few Codecov complaints from files touched by
|
||||
previous commit. Ignoring the "duplicate code" issue caused by the empty
|
||||
comment line at the beginning of every file.
|
||||
|
||||
2020-09-14 RossGammon <rossgammon@mail.dk>
|
||||
|
||||
* debian/changelog, debian/copyright: Update Debian directory after
|
||||
producing the deb file for the 5.1.3 (#1100) Release.
|
||||
|
||||
2020-09-14 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/selectors/baseselector.py: Fix crash sorting on columns
|
||||
in Selectors with TreeModels (#1099) Fixes #11750
|
||||
|
||||
2020-09-14 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/gui/dbloader.py, gramps/gui/displaystate.py,
|
||||
gramps/gui/uimanager.py, gramps/gui/utils.py,
|
||||
gramps/gui/viewmanager.py: Fix progress bar freeze due to changes in
|
||||
Gtk (#1103) Fixes #11642
|
||||
|
||||
2020-09-14 Paul Culley <paulr2787@gmail.com>
|
||||
|
||||
* gramps/plugins/docgen/svgdrawdoc.py: Fix svgdrawdoc for text
|
||||
containing XML invalid characters (#1110) Fixes #11929
|
||||
|
||||
2020-08-30 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.bundle: Further changes for bundling with Python 3.8.
|
||||
|
||||
2020-08-30 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.bundle: Add libgeocode-glib to bundle so that it
|
||||
actually works.
|
||||
|
||||
2020-08-26 Mirko Leonhaeuser <mirko@leonhaeuser.de>
|
||||
|
||||
* po/de.po: German translation two small corrections
|
||||
|
||||
2020-08-25 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps_launcher.py: [mac] Set __file__ if gramps_launcher.py
|
||||
is run as __main__. Fixes #11874.
|
||||
|
||||
2020-08-21 Zdeněk Hataš <zdenek.hatas@gmail.com>
|
||||
|
||||
* po/cs.po: Update Czech translation
|
||||
|
||||
2020-08-20 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/Info.plist, mac/gramps.modules: Bundle release of Gramps
|
||||
5.1.3.
|
||||
|
||||
2020-08-20 John Ralls <jralls@ceridwen.us>
|
||||
|
||||
* mac/gramps.modules: Add geocode-glib to build.
|
||||
|
||||
2020-08-12 pehlm <par.ekholm@pekholm.org>
|
||||
|
||||
* po/sv.po: Update Swedish translation
|
||||
|
||||
2020-08-12 prculley <paulr2787@gmail.com>
|
||||
|
||||
* Bump to 5.1.4
|
||||
@@ -133,7 +133,7 @@ Gramps is a [http://en.wikipedia.org/wiki/Gtk GTK] application. Gramps needs to
|
||||
|
||||
The Linux Genealogy CD can function as a live CD that you boot directly from. You can then run Linux and Gramps off the CD, even if your computer is entirely Windows.
|
||||
|
||||
An Windows installer is available for 32 and 64 bit versions of windows from Windows versions 7 through 10. As with all other support, we do do our best to solve windows related problems.
|
||||
An experimental Windows installer is available, however we do not have the manpower to offer support for Windows. A windows mailing list is available however and we do do our best to solve windows related problems.
|
||||
|
||||
|
||||
8. Does it work with the Mac?
|
||||
@@ -145,7 +145,7 @@ This present version of Gramps (2.2.x) does not appear to have been ported by th
|
||||
|
||||
9. What are the Minimum Specs to run Gramps?
|
||||
|
||||
We would recommend at least an 800x600 video display. For Gramps 5.x, Gramps can run quite efficiently on a 3GB memory system. A system with that much RAM should be able to hold more than 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
|
||||
We would recommend at least an 800x600 video display. For Gramps 2.0, the memory requirements have been reduced, and Gramps can run quite efficiently on a 256MB system, holding considerably more people. A system with 512MB should be able to hold around 200,000 people. Disk space requirements for databases are however considerably larger, with a typical database being several megabytes in size. For 120.000 people you must consider already 530Mb for the database. Pictures are stored on disk separately, so a large harddisk is necessary.
|
||||
|
||||
|
||||
==Preferences==
|
||||
@@ -181,7 +181,7 @@ The nice thing about standards is that there never is a shortage of them. Gramps
|
||||
|
||||
15. How do I import data from another genealogy program into Gramps?
|
||||
|
||||
The best way is to create a new gramps database file, and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
|
||||
The best way is to create a new gramps database file (.grdb), and select the import option in the file menu. Here you select the GEDCOM you generated with the other program, and import it.
|
||||
|
||||
|
||||
16. Can I install Gramps on a Linux Web Server and use it via a web browser? This would enable my relations worldwide to access and update it.
|
||||
@@ -212,7 +212,7 @@ their own plugins which could be new reports, charts, or research tools.
|
||||
|
||||
18. In what formats can Gramps output its reports?
|
||||
|
||||
Text reports are available in HTML, PDF, ODT, LaTeX, and RTF formats. Graphical reports (charts and diagrams) are available in PostScript, PDF, SVG, ODS, and Graphviz formats.
|
||||
Text reports are available in HTML, PDF, ODT, LaTeX, and RTF formats. Graphical reports (charts and diagrams) are available in PostScript, PDF, SVG, ODS, and GraphViz formats.
|
||||
|
||||
|
||||
19. How can I change the default language in reports?
|
||||
@@ -315,7 +315,7 @@ gramps-devel@lists.sf.net :-)
|
||||
The next best thing would be to submit a good bug report. This can be done in
|
||||
one of the two ways: (1) send your report to gramps-bugs@lists.sf.net
|
||||
or (2) file your report with the bug tracker system at
|
||||
https://gramps-project.org/bugs/ (this function is also
|
||||
http://bugs.gramps-project.org (this function is also
|
||||
available by selecting "Help->Report a bug" from gramps main menu).
|
||||
|
||||
A good bug report would include:
|
||||
@@ -355,3 +355,4 @@ Since Gramps generates HTML pages, you can upload the pages to your personal web
|
||||
|
||||
**** End of Gramps Frequently Asked Questions ****
|
||||
|
||||
$Id$
|
||||
|
||||
@@ -25,5 +25,7 @@ able to run gramps from the source directory without setting PYTHONPATH
|
||||
|
||||
From this position, import gramps works great
|
||||
"""
|
||||
import os
|
||||
os.environ['GRAMPS_RESOURCES'] = os.path.dirname(os.path.abspath(__file__))
|
||||
import gramps.grampsapp as app
|
||||
app.main()
|
||||
|
||||
@@ -33,11 +33,11 @@ all required and optional dependencies. Missing dependencies will
|
||||
result in runtime errors.
|
||||
|
||||
To build and install, whether from a tarball or git repo:
|
||||
python3 setup.py build
|
||||
sudo python3 setup.py install
|
||||
python setup.py build
|
||||
sudo python setup.py install
|
||||
|
||||
You can avoid using sudo for the install step by specifying a prefix to which you have write priviledge. The default is /usr/local, which is usually owned by root. You can learn of more options with
|
||||
python3 setup.py --help
|
||||
python setup.py --help
|
||||
|
||||
One can use gramps from the command line without installing it by
|
||||
setting the following environment variables, but that won't provide
|
||||
@@ -71,7 +71,7 @@ from the source directory.
|
||||
b) You installed Gramps, and want to start it from the PYTHONPATH. In this
|
||||
case use the command:
|
||||
|
||||
python3 -c 'from gramps.grampsapp import main; main()'
|
||||
python -c 'from gramps.grampsapp import main; main()'
|
||||
|
||||
The executable 'gramps' in /usr/local/bin or /usr/bin from a) does
|
||||
this for you.
|
||||
@@ -79,7 +79,7 @@ from the source directory.
|
||||
b) You downloaded the Gramps source code to a directory, and want to run it.
|
||||
You can start Gramps from the source code directory with
|
||||
|
||||
python3 Gramps.py
|
||||
python Gramps.py
|
||||
|
||||
See gramps/gen/const.py how Gramps finds its resource directories in case
|
||||
you encounter problems.
|
||||
@@ -90,17 +90,17 @@ If you would like to install Gramps without being root, or in an
|
||||
alternative location on windows, supply the --root argument to setup.py
|
||||
|
||||
For example:
|
||||
python3 setup.py install --root ~/test
|
||||
python setup.py install --root ~/test
|
||||
|
||||
Packager's issues
|
||||
------------------
|
||||
There is a MANIFEST.in file to indicate the work needed.
|
||||
To create a source distribution run:
|
||||
|
||||
python3 setup.py sdist
|
||||
python setup.py sdist
|
||||
|
||||
If Gramps is built outside of the source tree in a temporary location (e.g. when
|
||||
packaging for a distribution), the --resourcepath option can be used to specify
|
||||
the path to the installed location of the Gramps resources (e.g. /usr/share):
|
||||
|
||||
python3 setup.py install --resourcepath=/usr/share
|
||||
python setup.py install --resourcepath=/usr/share
|
||||
|
||||
@@ -0,0 +1,397 @@
|
||||
GNU Free Documentation License
|
||||
Version 1.2, November 2002
|
||||
|
||||
|
||||
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
0. PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document "free" in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of "copyleft", which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
|
||||
1. APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The "Document", below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as "you". You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A "Modified Version" of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A "Secondary Section" is a named appendix or a front-matter section of
|
||||
the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall subject
|
||||
(or to related matters) and contains nothing that could fall directly
|
||||
within that overall subject. (Thus, if the Document is in part a
|
||||
textbook of mathematics, a Secondary Section may not explain any
|
||||
mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The "Invariant Sections" are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The "Cover Texts" are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A "Transparent" copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not "Transparent" is called "Opaque".
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, LaTeX input format, SGML
|
||||
or XML using a publicly available DTD, and standard-conforming simple
|
||||
HTML, PostScript or PDF designed for human modification. Examples of
|
||||
transparent image formats include PNG, XCF and JPG. Opaque formats
|
||||
include proprietary formats that can be read and edited only by
|
||||
proprietary word processors, SGML or XML for which the DTD and/or
|
||||
processing tools are not generally available, and the
|
||||
machine-generated HTML, PostScript or PDF produced by some word
|
||||
processors for output purposes only.
|
||||
|
||||
The "Title Page" means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, "Title Page" means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
A section "Entitled XYZ" means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as "Acknowledgements",
|
||||
"Dedications", "Endorsements", or "History".) To "Preserve the Title"
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section "Entitled XYZ" according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
|
||||
2. VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no other
|
||||
conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
|
||||
3. COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to give
|
||||
them a chance to provide you with an updated version of the Document.
|
||||
|
||||
|
||||
4. MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
A. Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
B. List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
C. State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
D. Preserve all the copyright notices of the Document.
|
||||
E. Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
F. Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
G. Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
H. Include an unaltered copy of this License.
|
||||
I. Preserve the section Entitled "History", Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled "History" in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
J. Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the "History" section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||||
Preserve the Title of the section, and preserve in the section all
|
||||
the substance and tone of each of the contributor acknowledgements
|
||||
and/or dedications given therein.
|
||||
L. Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
M. Delete any section Entitled "Endorsements". Such a section
|
||||
may not be included in the Modified Version.
|
||||
N. Do not retitle any existing section to be Entitled "Endorsements"
|
||||
or to conflict in title with any Invariant Section.
|
||||
O. Preserve any Warranty Disclaimers.
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled "Endorsements", provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties--for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
|
||||
5. COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled "History"
|
||||
in the various original documents, forming one section Entitled
|
||||
"History"; likewise combine any sections Entitled "Acknowledgements",
|
||||
and any sections Entitled "Dedications". You must delete all sections
|
||||
Entitled "Endorsements".
|
||||
|
||||
|
||||
6. COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other documents
|
||||
released under this License, and replace the individual copies of this
|
||||
License in the various documents with a single copy that is included in
|
||||
the collection, provided that you follow the rules of this License for
|
||||
verbatim copying of each of the documents in all other respects.
|
||||
|
||||
You may extract a single document from such a collection, and distribute
|
||||
it individually under this License, provided you insert a copy of this
|
||||
License into the extracted document, and follow this License in all
|
||||
other respects regarding verbatim copying of that document.
|
||||
|
||||
|
||||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an "aggregate" if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
|
||||
8. TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled "Acknowledgements",
|
||||
"Dedications", or "History", the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
|
||||
9. TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document except
|
||||
as expressly provided for under this License. Any other attempt to
|
||||
copy, modify, sublicense or distribute the Document is void, and will
|
||||
automatically terminate your rights under this License. However,
|
||||
parties who have received copies, or rights, from you under this
|
||||
License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
|
||||
10. FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions
|
||||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
http://www.gnu.org/copyleft/.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License "or any later version" applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation.
|
||||
|
||||
|
||||
ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
Copyright (c) YEAR YOUR NAME.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.2
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
|
||||
A copy of the license is included in the section entitled "GNU
|
||||
Free Documentation License".
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the "with...Texts." line with this:
|
||||
|
||||
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
@@ -1,14 +1,13 @@
|
||||
include AUTHORS
|
||||
include ChangeLog
|
||||
include COPYING
|
||||
include FAQ
|
||||
include Gramps.py
|
||||
include INSTALL
|
||||
include LICENSE
|
||||
include MANIFEST.in
|
||||
include NEWS
|
||||
include RELEASE_NOTES
|
||||
include TODO
|
||||
include CONTRIBUTING
|
||||
include TestPlan.txt
|
||||
recursive-include data *
|
||||
recursive-include debian *
|
||||
@@ -23,9 +22,11 @@ recursive-include windows *
|
||||
|
||||
# Remove files created in the build
|
||||
exclude data/tips.xml
|
||||
exclude data/holidays.xml
|
||||
exclude gramps/plugins/lib/holidays.xml
|
||||
exclude po/.intltool-merge-cache
|
||||
global-exclude *.pyc
|
||||
global-exclude *.pyo
|
||||
|
||||
# Remove directories which should not be included in the distribution
|
||||
prune gramps/guiQML
|
||||
#prune gramps/webapp
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
Please read the COPYING file first.
|
||||
|
||||
Please read the INSTALL file if you intend to build from source.
|
||||
|
||||
Requirements
|
||||
--------------------------------
|
||||
The following packages *MUST* be installed in order for Gramps to work:
|
||||
Python 3.2 or greater
|
||||
GTK 3.10 or greater
|
||||
pygobject 3.3.2 or greater
|
||||
cairo, pango, pangocairo with introspection bindings (the gi packages)
|
||||
librsvg2 (svg icon view)
|
||||
xdg-utils
|
||||
bsddb3
|
||||
|
||||
The following package is needed for full translation of the interface
|
||||
to your language:
|
||||
language-pack-gnome-xx
|
||||
Translation of GTK elements to your language, with
|
||||
xx your language code; e.g. for Dutch you need
|
||||
language-pack-gnome-nl. The translation of the
|
||||
Gramps strings is included with the gramps source.
|
||||
|
||||
|
||||
The following packages are *STRONGLY RECOMMENDED* to be installed:
|
||||
|
||||
osmgpsmap Used to show maps in the geography view.
|
||||
It may be osmgpsmap, osm-gps-map, or python-osmgpsmap,
|
||||
but the Python bindings for this must also be present.
|
||||
Without this the GeoView will not be active, see
|
||||
http://gramps-project.org/wiki/index.php?title=Gramps_4.1_Wiki_Manual_-_Main_Window#Geography_Category
|
||||
|
||||
GraphViz Enable creation of graphs using GraphViz engine.
|
||||
Without this, three reports cannot be run.
|
||||
Obtain it from: http://www.graphviz.org
|
||||
|
||||
PyICU Improves localised sorting in Gramps. In particular, this
|
||||
applies to sorting in the various views and in the
|
||||
Narrative Web output. It is particularly helpful for
|
||||
non-Latin characters, for non-English locales and on MS
|
||||
Windows and Mac OS X platforms. If it is not available,
|
||||
sorting is done through built-in libraries. PyICU is
|
||||
fairly widely available through the package managers of
|
||||
distributions. See http://pyicu.osafoundation.org/
|
||||
(These are Python bindings for the ICU package.)
|
||||
|
||||
The following packages are optional
|
||||
|
||||
gtkspell Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
is needed, so minimally version 3.0.0
|
||||
|
||||
rcs The GNU Revision Control System (RCS) can be used to manage
|
||||
multiple revisions of your family trees. See info at
|
||||
http://www.gramps-project.org/wiki/index.php?title=Gramps_4.1_Wiki_Manual_-_Manage_Family_Trees#Archiving_a_Family_Tree
|
||||
Only rcs is needed, NO python bindings are required
|
||||
|
||||
PIL Python Image Library is needed to crop
|
||||
images and also to convert non-JPG images to
|
||||
JPG so as to include them in LaTeX output.
|
||||
(For Python3 a different source may be needed,
|
||||
python-imaging or python-pillow or python3-pillow)
|
||||
|
||||
GExiv2 Enables Gramps to manage Exif metadata embedded in your
|
||||
media. Gramps needs version 0.5 or greater.
|
||||
See http://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion#GExiv2_for_Image_metadata
|
||||
|
||||
ttf-freefont More font support in the reports
|
||||
|
||||
gir-webkit Required for the (user-downloadable) HtmlView plugin
|
||||
|
||||
goocanvas2 Required for the (user-downloadable) GraphView plugin
|
||||
|
||||
No longer needed in 4.1:
|
||||
?
|
||||
No longer needed in 4.0:
|
||||
pygoocanvas, pygtk, pyexiv2
|
||||
No longer needed in 3.3:
|
||||
python-enchant Enchant
|
||||
No longer needed in 3.2:
|
||||
python glade bindings
|
||||
No longer needed in 3.1:
|
||||
yelp Gnome help browser. No offline help is shipped see Gramps website for User manual
|
||||
|
||||
|
||||
Documentation
|
||||
---------------------------------
|
||||
The User Manual is maintained on the Gramps website,
|
||||
http://www.gramps-project.org/wiki/index.php?title=User_manual
|
||||
|
||||
--------------------------------
|
||||
The Gramps Project
|
||||
http://gramps-project.org
|
||||
@@ -1,165 +0,0 @@
|
||||
The Gramps Project ( https://gramps-project.org ) [](https://travis-ci.org/gramps-project/gramps)[](https://codecov.io/github/gramps-project/gramps?branch=master)
|
||||
===================
|
||||
We strive to produce a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.
|
||||
|
||||
Please read the **COPYING** file first.
|
||||
|
||||
Please read the **INSTALL** file if you intend to build from source.
|
||||
|
||||
Requirements
|
||||
============
|
||||
The following packages **MUST** be installed in order for Gramps to work:
|
||||
|
||||
* **Python** 3.3 or greater - The programming language used by Gramps. https://www.python.org/
|
||||
* **GTK** 3.12 or greater - A cross-platform widget toolkit for creating graphical user interfaces. http://www.gtk.org/
|
||||
* **pygobject** 3.12 or greater - Python Bindings for GLib/GObject/GIO/GTK+ https://wiki.gnome.org/Projects/PyGObject
|
||||
|
||||
The following three packages with GObject Introspection bindings (the gi packages)
|
||||
|
||||
* **cairo** 1.13.1 or greater - a 2D graphics library with support for multiple output devices. http://cairographics.org/
|
||||
* **Pycairo** 1.13.3 or greater - GObject Introspection bindings for cairo. https://github.com/pygobject/pycairo
|
||||
* **pango** - a library for laying out and rendering of text, with an emphasis on internationalization. http://www.pango.org/
|
||||
* **pangocairo** - Allows you to use Pango with Cairo http://www.pango.org/
|
||||
|
||||
* **librsvg2** - (SVG icon view) a library to render SVG files using cairo. http://live.gnome.org/LibRsvg
|
||||
* **xdg-utils** - Desktop integration utilities from freedesktop.org
|
||||
* **bsddb3** - Python bindings for Oracle Berkeley DB https://pypi.python.org/pypi/bsddb3/
|
||||
* **sqlite3** - Python bindings for SQLite Database library
|
||||
|
||||
The following package is needed for full translation of the interface
|
||||
to your language:
|
||||
|
||||
* **language-pack-gnome-xx**
|
||||
|
||||
Translation of GTK elements to your language, with
|
||||
xx your language code; e.g. for Dutch you need
|
||||
language-pack-gnome-nl. The translation of the
|
||||
Gramps strings is included with the gramps source.
|
||||
|
||||
|
||||
The following packages are **STRONGLY RECOMMENDED** to be installed:
|
||||
--------------------------------------------------------------------
|
||||
* **osmgpsmap**
|
||||
|
||||
Used to show maps in the geography view.
|
||||
It may be osmgpsmap, osm-gps-map, or python-osmgpsmap,
|
||||
but the Python bindings for this must also be present, so gir1.2-osmgpsmap-1.0.
|
||||
Without this the GeoView will not be active, see
|
||||
https://gramps-project.org/wiki/index.php?title=Gramps_5.0_Wiki_Manual_-_Categories#Geography_Category
|
||||
|
||||
* **Graphviz**
|
||||
|
||||
Enable creation of graphs using Graphviz engine.
|
||||
Without this, three reports cannot be run.
|
||||
Obtain it from: http://www.graphviz.org or try graphviz and python3-pygraphviz from your packages.
|
||||
|
||||
* **PyICU**
|
||||
|
||||
Improves localised sorting in Gramps. In particular, this
|
||||
applies to sorting in the various views and in the
|
||||
Narrative Web output. It is particularly helpful for
|
||||
non-Latin characters, for non-English locales and on MS
|
||||
Windows and Mac OS X platforms. If it is not available,
|
||||
sorting is done through built-in libraries. PyICU is
|
||||
fairly widely available through the package managers of
|
||||
distributions. See http://pyicu.osafoundation.org/
|
||||
(These are Python bindings for the ICU package.
|
||||
https://pypi.python.org/pypi/PyICU/)
|
||||
|
||||
* **Ghostscript**
|
||||
|
||||
Used by Graphviz reports to help create PDF's
|
||||
|
||||
The following packages are optional:
|
||||
------------------------------------
|
||||
* **gtkspell**
|
||||
|
||||
Enable spell checking in the notes. Gtkspell depends on
|
||||
enchant. A version of gtkspell with gobject introspection
|
||||
is needed, so minimally version 3.0.0
|
||||
|
||||
* **rcs**
|
||||
|
||||
The GNU Revision Control System (RCS) can be used to manage
|
||||
multiple revisions of your family trees. See info at
|
||||
https://gramps-project.org/wiki/index.php?title=Gramps_5.0_Wiki_Manual_-_Manage_Family_Trees#Archiving_a_Family_Tree
|
||||
Only rcs is needed, NO python bindings are required
|
||||
|
||||
* **PIL**
|
||||
|
||||
Python Image Library (PILLOW) is needed to crop
|
||||
images and also to convert non-JPG images to
|
||||
JPG so as to include them in LaTeX output.
|
||||
(For Python3 a different source may be needed,
|
||||
python-imaging or python-pillow or python3-pillow)
|
||||
|
||||
* **GExiv2**
|
||||
|
||||
Enables Gramps to manage Exif metadata embedded in your
|
||||
media. Gramps needs version 0.5 or greater.
|
||||
See https://www.gramps-project.org/wiki/index.php?title=GEPS_029:_GTK3-GObject_introspection_Conversion#GExiv2_for_Image_metadata
|
||||
|
||||
* **ttf-freefont**
|
||||
|
||||
More font support in the reports
|
||||
|
||||
* **geocodeglib**
|
||||
|
||||
A library use to associate a geographical position (latitude, longitude)
|
||||
to a place name. This is used if you already have osmgpsmap installed.
|
||||
If installed, when you add or link a place from the map, you have a red line
|
||||
at the end of the table for selection.
|
||||
Debian, Ubuntu, ... : gir1.2-geocodeglib-1.0
|
||||
Fedora, Redhat, ... : geocode-glib
|
||||
openSUSE : geocode-glib
|
||||
ArchLinux : geocode-glib
|
||||
...
|
||||
|
||||
* **fontconfig**
|
||||
|
||||
Python bindings of fontconfig are required for displaying
|
||||
genealogical symbols
|
||||
|
||||
Optional packages required by Third-party Addons
|
||||
------------------------------------------------
|
||||
|
||||
**Third-party Addons are written by users and developers and unless stated are not officially part of Gramps.**
|
||||
For more information about Addons see: https://gramps-project.org/wiki/index.php?title=Third-party_Plugins
|
||||
|
||||
Prerequistes required for the following Addons to work:
|
||||
|
||||
* **Family Sheet** - Requires: PIL (Python Imaging Library) or PILLOW.
|
||||
( https://gramps-project.org/wiki/index.php?title=Family_Sheet )
|
||||
|
||||
* **Graph View** - Requires: PyGoocanvas and Goocanvas (python-pygoocanvas, gir1.2-goocanvas-2.0).
|
||||
( https://gramps-project.org/wiki/index.php?title=Graph_View )
|
||||
|
||||
* **Network Chart** - Requires: networkx and pygraphviz
|
||||
( https://gramps-project.org/wiki/index.php?title=NetworkChart )
|
||||
|
||||
* **PedigreeChart** - Can optionally use - numpy if installed
|
||||
( https://gramps-project.org/wiki/index.php?title=PedigreeChart )
|
||||
|
||||
No longer needed:
|
||||
-----------------
|
||||
* Since Gramps 4.2:
|
||||
**gir-webkit**
|
||||
|
||||
* Since Gramps 4.0:
|
||||
**pygoocanvas, pygtk, pyexiv2**
|
||||
|
||||
* Since Gramps 3.3:
|
||||
**python-enchant Enchant**
|
||||
|
||||
* Since Gramps 3.2:
|
||||
**python glade bindings**
|
||||
|
||||
* Since Gramps 3.1:
|
||||
**yelp** - Gnome help browser. No offline help is shipped see Gramps website for User manual
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
The User Manual is maintained on the Gramps website:
|
||||
|
||||
* https://www.gramps-project.org/wiki/index.php?title=User_manual
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
$Id$
|
||||
|
||||
UNSTABLE Gramps 4.0.0 Beta2 release.
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
_gramps()
|
||||
{
|
||||
local cur prev opts
|
||||
COMPREPLY=()
|
||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
opts="--action --config --create --databases --debug --export --format --help --import --open --options --quiet --remove --show --usage --version --yes -? -C -L -O -a -b -c -d -e -f -i -l -p -q -r -s -t -u -v -y"
|
||||
if [[ ${cur} == -* ]] ; then
|
||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
||||
return 0
|
||||
elif [[ ${cur} == --open ]] ; then
|
||||
local IFS=$'\n'
|
||||
local names=($( gramps -l | grep \" | cut -d\ -f4- ))
|
||||
COMPREPLY=( $(compgen --W "${names[*]}" -- ${cur}) )
|
||||
return 0
|
||||
else
|
||||
local IFS=$'\n'
|
||||
local names=($( gramps -l | grep \" | cut -d\ -f4- ))
|
||||
COMPREPLY=( $(compgen -W "${names[*]}" -- ${cur}) )
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
complete -F _gramps gramps
|
||||
@@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Id$ -->
|
||||
<authors xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<author title="author">
|
||||
Alex Roitman <<html:a href="mailto:shura@gramps-project.org">shura@gramps-project.org</html:a>>
|
||||
@@ -93,9 +94,6 @@
|
||||
<author title="contributor">
|
||||
Nick Hall <<html:a href="mailto:nick__hall@hotmail.com">nick__hall@hotmail.com</html:a>>
|
||||
</author>
|
||||
<author title="contributor">
|
||||
Paul Culley <<html:a href="mailto:paulr2787@gmail.com">paulr2787@gmail.com</html:a>>
|
||||
</author>
|
||||
<author title="contributor">
|
||||
Peter Landgren <<html:a href="mailto:peter.talken@telia.com">peter.talken@telia.com</html:a>>
|
||||
</author>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright 2009 Serge Noiraud
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
GeoView Style Sheet
|
||||
Style Name: GeoView
|
||||
Style Author: Serge Noiraud (2009)
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
This file was created for GeoView usage.
|
||||
|
||||
# $Id$
|
||||
|
||||
GeoView Styles
|
||||
|
||||
----------------------------------------------------- */
|
||||
|
||||
#geo-map
|
||||
{
|
||||
margin-left:0px;
|
||||
margin-top:0px;
|
||||
margin-right:auto;
|
||||
margin-bottom:auto;
|
||||
}
|
||||
|
||||
/* InfoWindow */
|
||||
#geo-info {
|
||||
font-size:10pt;
|
||||
max-height:200px;
|
||||
max-width: 600px;
|
||||
min-width: 300px;
|
||||
text-align: left;
|
||||
padding-right: 6px;
|
||||
overflow-x: auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -52,6 +50,7 @@ Characteristic of this style is that it uses the full width of the browser
|
||||
window and that horizontal highlighting bars extend over the full width of
|
||||
the page.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -61,7 +60,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
font-size: 90%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #EEE;
|
||||
@@ -69,13 +68,6 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
@@ -84,19 +76,9 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -105,12 +87,6 @@ h1 {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: large;
|
||||
padding-left: 15px;
|
||||
@@ -128,7 +104,6 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
text-decoration: underline;
|
||||
@@ -224,93 +199,6 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #EEE;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -437,10 +325,6 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -473,15 +357,7 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #999;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -498,10 +374,13 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 50em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #EEE;
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#Contact #GalleryDisplay img {
|
||||
#Contact img {
|
||||
float: right;
|
||||
border: solid 1px #999;
|
||||
}
|
||||
@@ -515,12 +394,6 @@ div#SourceDetail {
|
||||
#Contact #city:after {
|
||||
content: ",";
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Contact,
|
||||
#Contact #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Download
|
||||
----------------------------------------------------- */
|
||||
@@ -530,22 +403,13 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay {
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
@@ -575,33 +439,13 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -609,40 +453,6 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
@@ -650,9 +460,6 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -716,7 +523,6 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #EEE;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
# Copyright (C) 2018 Theo van Rijn
|
||||
# Copyright (C) 2019 Serge Noiraud
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@@ -74,13 +72,6 @@ img {
|
||||
.thumbnail a:hover {
|
||||
background: none;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFF;
|
||||
color: #000;
|
||||
@@ -103,10 +94,6 @@ img {
|
||||
width: 96px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
width: 100%;
|
||||
height: 1px;
|
||||
@@ -114,12 +101,6 @@ img {
|
||||
padding: 0;
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -153,6 +134,7 @@ h5, h6 {
|
||||
margin:1.3em 0 .5em 1em;
|
||||
}
|
||||
p#description {
|
||||
max-width: 800px;
|
||||
margin: 0;
|
||||
padding: 1em 20px;
|
||||
text-indent: 30px;
|
||||
@@ -240,55 +222,6 @@ p#user_header {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
/* Navigation
|
||||
----------------------------------------------------- */
|
||||
div#nav, #subnavigation {
|
||||
border: solid 1px #EEE; /* needed by IE7 */
|
||||
background-color: #13A926;
|
||||
}
|
||||
#subnavigation ul {
|
||||
overflow: hidden;
|
||||
}
|
||||
div#nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
margin: 0px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
#subnavigation ul {
|
||||
border-bottom: solid 1px #999;
|
||||
}
|
||||
div#nav ul li, #subnavigation ul li {
|
||||
float: left;
|
||||
}
|
||||
div#nav ul li a, #subnavigation ul li a {
|
||||
display: block;
|
||||
font-size: smaller;
|
||||
font-weight: bold;
|
||||
padding: 5px;
|
||||
border-bottom: solid 1px #EEE;
|
||||
}
|
||||
div#nav ul li a:hover, #subnavigation ul li a:hover {
|
||||
text-decoration: none;
|
||||
background-color: #CCC;
|
||||
border-bottom: solid 1px black;
|
||||
}
|
||||
div#nav ul li.CurrentSection a {
|
||||
position: relative;
|
||||
top: 1px;
|
||||
border: solid 1px #999;
|
||||
border-bottom-style: none;
|
||||
background-color: white;
|
||||
}
|
||||
#nav ul li.CurrentSection a:hover {
|
||||
background-color: #903;
|
||||
}
|
||||
|
||||
/* Webcal
|
||||
----------------------------------------------------- */
|
||||
#subnavigation ul li.CurrentSection a {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* Footer
|
||||
----------------------------------------------------- */
|
||||
div#footer {
|
||||
@@ -338,129 +271,6 @@ div#footer p#copyright img {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
/* Alphabet Navigation
|
||||
----------------------------------------------------- */
|
||||
div#alphanav {
|
||||
background-color: #EEE;
|
||||
}
|
||||
div#alphanav ul {
|
||||
list-style: none;
|
||||
border-width: 2px 0px 4px 0px;
|
||||
border-style: solid;
|
||||
border-color: black;
|
||||
margin: 0px;
|
||||
padding-left: 15px;
|
||||
/* float container stretch, see www.quirksmode.org/css/clearing.html */
|
||||
overflow: hidden;
|
||||
}
|
||||
div#alphanav ul li {
|
||||
float: left;
|
||||
font-size: larger;
|
||||
font-weight: bold;
|
||||
}
|
||||
div#alphanav ul li:after {
|
||||
content: " |";
|
||||
}
|
||||
div#alphanav ul li a {
|
||||
display: block;
|
||||
padding: 4px 8px;
|
||||
line-height: 100%;
|
||||
float: left;
|
||||
|
||||
}
|
||||
div#alphanav ul li a:hover {
|
||||
text-decoration: none;
|
||||
background-color: black;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
/* position: absolute; */
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #13A926;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table.infolist {
|
||||
@@ -479,6 +289,10 @@ table.infolist thead tr th {
|
||||
table.infolist tr td {
|
||||
border-bottom: dashed 1px #000;
|
||||
vertical-align: middle;
|
||||
padding: 6px 0 6px 10px;
|
||||
}
|
||||
table.infolist tr td a {
|
||||
display: block;
|
||||
}
|
||||
table.infolist tr.BeginLetter td, table.infolist tr.BeginSurname td {
|
||||
border-top: solid 1px #000;
|
||||
@@ -538,15 +352,15 @@ div#Individuals {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
div#Individuals table.IndividualList {
|
||||
div#Individuals table.individuallist {
|
||||
border-bottom: solid 1px #000;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:hover,
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:active {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnSurname a:hover,
|
||||
div#Individuals table.individuallist tbody tr td.ColumnSurname a:active {
|
||||
cursor: default;
|
||||
background: none;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnName a {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnName a {
|
||||
vertical-align: middle;
|
||||
}
|
||||
div#Individuals div table.infolist tr td p {
|
||||
@@ -680,7 +494,7 @@ table.eventlist tbody tr td.ColumnNotes {
|
||||
width: 20%;
|
||||
}
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
width: 17%;
|
||||
}
|
||||
table.eventlist tbody tr td.ColumnPerson {
|
||||
width: 35%;
|
||||
@@ -769,26 +583,6 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#Gallery table.infolist tbody tr td {
|
||||
border-bottom: dashed 1px #000;
|
||||
}
|
||||
@@ -838,15 +632,7 @@ div#EventDetail table.eventlist tbody tr td.ColumnDate {
|
||||
}
|
||||
#GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail div#summaryarea{
|
||||
margin: 0;
|
||||
padding: 2em 0 0 0;
|
||||
@@ -898,51 +684,48 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
/* Contact
|
||||
------------------------------------------------- */
|
||||
#Contact #summaryarea {
|
||||
width: 500px;
|
||||
margin: 0 auto;
|
||||
padding: 3em;
|
||||
border: double 4px #000;
|
||||
background-color: #BCEAF6;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact #summaryarea img {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Contact, #Contact #summaryarea #researcher,
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#Contact #summaryarea #researcher {
|
||||
#researcher {
|
||||
font: normal 1.5em/1.4em serif;
|
||||
margin-top: .3em;
|
||||
}
|
||||
#Contact #summaryarea #researcher h3 {
|
||||
#researcher h3 {
|
||||
font: normal 1.2em/1.4em serif;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
}
|
||||
#Contact #summaryarea #researcher span {
|
||||
#researcher span {
|
||||
float: left;
|
||||
display: block;
|
||||
font: normal .9em/1.4em serif;
|
||||
margin-right: .4em;
|
||||
}
|
||||
#Contact #summaryarea #streetaddress {
|
||||
#streetaddress {
|
||||
width: 100%;
|
||||
}
|
||||
#Contact #summaryarea #locality, .locality {
|
||||
#locality, .locality {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
#Contact #summaryarea #city:after {
|
||||
#city:after {
|
||||
content: ",";
|
||||
}
|
||||
#Contact #summaryarea #country {
|
||||
#country {
|
||||
clear: left;
|
||||
}
|
||||
#Contact #summaryarea #email {
|
||||
#email {
|
||||
clear: left;
|
||||
}
|
||||
#Contact #summaryarea #email a {
|
||||
#email a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@@ -1035,29 +818,17 @@ div#AddressBookList table.addressbook tbody tr td.ColumnWebLinks {
|
||||
|
||||
/* Subsections
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay,
|
||||
#Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
#Home, #Introduction, #Contact {
|
||||
padding: 2em 0 3em 0;
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
margin: 0 20px 1em 20px;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 0;
|
||||
padding: 0 20px 3em 2em;
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
@@ -1161,15 +932,6 @@ div#families {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
div#families .infolist h4 {
|
||||
font: bold 1.2em sans-serif;
|
||||
color: #FFF;
|
||||
padding: 0px 0px 0px 20px;
|
||||
border-width: 4px 0px 4px 0px;
|
||||
border-style: solid;
|
||||
border-color: #00029D;
|
||||
background-color: #13A926;
|
||||
}
|
||||
div#families table.infolist tbody tr.BeginFamily {
|
||||
border-top: solid 1px #000;
|
||||
}
|
||||
@@ -1336,8 +1098,8 @@ div.Residence table.infolist tr td {
|
||||
margin: 0;
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery div.thumbnail a {
|
||||
display: block;
|
||||
@@ -1345,7 +1107,6 @@ div.Residence table.infolist tr td {
|
||||
padding: 0;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
#indivgallery div.thumbnail a img {
|
||||
padding: 0;
|
||||
@@ -1361,43 +1122,6 @@ div.Residence table.infolist tr td {
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsections : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -1406,10 +1130,9 @@ div.narrative {
|
||||
}
|
||||
.narrative p {
|
||||
font: normal .9em/1.4em sans-serif;
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
}
|
||||
i + div.grampsstylednote p {
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
margin-top: .5em;
|
||||
margin-bottom: 0;
|
||||
padding: 0 20px 1em 20px;
|
||||
}
|
||||
|
||||
/* Subsections : References
|
||||
|
||||
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -52,6 +50,7 @@ Characteristic of this style is that it uses the full width of the browser
|
||||
window and that horizontal highlighting bars extend over the full width of
|
||||
the page.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -61,7 +60,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
font-size: 90%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #454;
|
||||
@@ -69,13 +68,6 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: white;
|
||||
border-top: solid 1px #7C8F7C;
|
||||
@@ -84,19 +76,9 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -105,12 +87,6 @@ h1 {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: large;
|
||||
padding-left: 15px;
|
||||
@@ -128,7 +104,6 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #9DBF9D;
|
||||
@@ -228,98 +203,6 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
color: #454;
|
||||
background-color: #E0E6E0;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
.nav.responsive li#CurrentSection a {
|
||||
color: #454;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -485,10 +368,6 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -524,15 +403,7 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #7C8F7C;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -549,10 +420,13 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #E0E6E0;
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact img {
|
||||
float: right;
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
@@ -579,24 +453,13 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
@@ -626,33 +489,13 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -660,40 +503,6 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7C8F7C;
|
||||
}
|
||||
@@ -701,9 +510,6 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -762,7 +568,6 @@ a.familymap {
|
||||
#footer {
|
||||
clear: both;
|
||||
color: #E0E6E0;
|
||||
font-size: 80%;
|
||||
padding-top: 1em;
|
||||
background-color: #9DBF9D;
|
||||
border-top: solid 1px #454;
|
||||
@@ -790,7 +595,7 @@ a.familymap {
|
||||
/* Overwritten
|
||||
----------------------------------------------------- */
|
||||
body#FamilyMap {
|
||||
background-color: #454 ! important;
|
||||
background-color: #E0E6E0 ! important;
|
||||
}
|
||||
|
||||
/* Calendar Styles
|
||||
|
||||
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -52,6 +50,7 @@ Characteristic of this style is that it uses the full width of the browser
|
||||
window and that horizontal highlighting bars extend over the full width of
|
||||
the page.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -69,13 +68,6 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FAFAFF;
|
||||
border-top: solid 1px #669;
|
||||
@@ -84,19 +76,9 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -105,12 +87,6 @@ h1 {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: large;
|
||||
padding-left: 15px;
|
||||
@@ -129,7 +105,6 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #E0E0E9
|
||||
@@ -226,93 +201,6 @@ div#alphanav ul li a:hover {
|
||||
color: #FAFAFF;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #669;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -473,10 +361,6 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -512,15 +396,7 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #669;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -537,10 +413,13 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #E0E0E9;
|
||||
border: solid 1px #669;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact img {
|
||||
float: right;
|
||||
border: solid 1px #669;
|
||||
}
|
||||
@@ -567,24 +446,13 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
@@ -614,33 +482,13 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -648,40 +496,6 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #669;
|
||||
}
|
||||
@@ -689,9 +503,6 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -755,7 +566,6 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #E0E0E9;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -21,8 +21,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -52,6 +50,7 @@ Characteristic of this style is that it uses the full width of the browser
|
||||
window and that horizontal highlighting bars extend over the full width of
|
||||
the page.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -61,7 +60,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
font-size: 90%;
|
||||
color: #36220B;
|
||||
margin: 0px;
|
||||
background-color: #FFE09F;
|
||||
@@ -69,13 +68,6 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFFBE7;
|
||||
border-top: solid 1px #8C581C;
|
||||
@@ -84,19 +76,9 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -105,12 +87,6 @@ h1 {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: large;
|
||||
padding-left: 15px;
|
||||
@@ -129,7 +105,6 @@ p#description {
|
||||
a {
|
||||
color: #36220B;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #FFE09F
|
||||
@@ -226,93 +201,6 @@ div#alphanav ul li a:hover {
|
||||
color: #FFFBE7;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #FFC35E;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -473,10 +361,6 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -512,13 +396,6 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #EA8414;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
@@ -536,10 +413,13 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #FFE09F;
|
||||
border: solid 1px #EA8414;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact img {
|
||||
float: right;
|
||||
border: solid 1px #EA8414;
|
||||
}
|
||||
@@ -566,31 +446,20 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -613,33 +482,13 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -647,40 +496,6 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #8C581C;
|
||||
}
|
||||
@@ -688,9 +503,6 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -754,7 +566,6 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #FFE09F;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -21,9 +21,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -53,6 +50,7 @@ Characteristic of this style is that it uses the full width of the browser
|
||||
window and that horizontal highlighting bars extend over the full width of
|
||||
the page.
|
||||
--------------------------------------------------------------------------------------------------
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
------------------------------------------------------------------------------------------------
|
||||
@@ -62,7 +60,7 @@ the page.
|
||||
|
||||
body {
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
font-size: 90%;
|
||||
color: black;
|
||||
margin: 0px;
|
||||
background-color: #EAEEF4;
|
||||
@@ -70,13 +68,6 @@ body {
|
||||
body > div {
|
||||
clear: both;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
background-color: #FFF;
|
||||
border-top: solid 1px #7CA3DD;
|
||||
@@ -85,19 +76,9 @@ body > div {
|
||||
float: right;
|
||||
margin: 2em;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.fullclear {
|
||||
clear: both;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* General Text
|
||||
----------------------------------------------------- */
|
||||
@@ -106,12 +87,6 @@ h1 {
|
||||
font-weight: bold;
|
||||
padding-left: 15px;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: large;
|
||||
padding-left: 15px;
|
||||
@@ -130,7 +105,6 @@ p#description {
|
||||
a {
|
||||
color: black;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #EAEEF4
|
||||
@@ -227,93 +201,6 @@ div#alphanav ul li a:hover {
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #EEE;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table {
|
||||
@@ -474,10 +361,6 @@ table.IndividualList td.ColumnSurname {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#GalleryNav {
|
||||
@@ -513,13 +396,6 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display: block;
|
||||
border: solid 1px #7CA3DD;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail h3 {
|
||||
text-align: center;
|
||||
@@ -537,10 +413,13 @@ div#SourceDetail {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Contact #summaryarea {
|
||||
width: 40em;
|
||||
margin: 2em auto;
|
||||
padding: 3em;
|
||||
background-color: #EAEEF4;
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact img {
|
||||
float: right;
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
@@ -567,24 +446,13 @@ div#SourceDetail {
|
||||
|
||||
/* Subsection
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin: 0;
|
||||
border: 0px;
|
||||
#Home, #Introduction {
|
||||
overflow: hidden;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
#Home img, #Introduction img {
|
||||
float: right;
|
||||
margin: 1em;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home p, #Introduction p {
|
||||
padding-left: 15px;
|
||||
@@ -614,33 +482,13 @@ div#families table.attrlist td.ColumnType {
|
||||
|
||||
/* Subsection : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.8em 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery h4 + .thumbnail {
|
||||
margin-left: 15px;
|
||||
@@ -648,40 +496,6 @@ div#families table.attrlist td.ColumnType {
|
||||
* first thumnail on each next row should also have a margin-left
|
||||
* of 15 px. */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7CA3DD;
|
||||
}
|
||||
@@ -689,9 +503,6 @@ div#families table.attrlist td.ColumnType {
|
||||
/* ## remove this line and the comment markers from the line below to hide description in Indivifual Gallery
|
||||
display: none; */
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsection : Narrative
|
||||
----------------------------------------------------- */
|
||||
@@ -755,7 +566,6 @@ a.familymap {
|
||||
}
|
||||
#footer > * {
|
||||
background-color: #EAEEF4;
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
|
||||
@@ -25,6 +25,7 @@ GRAMPS Cascading Style Sheet
|
||||
Style Name: Web_Citations-Outline.css
|
||||
******************************************************
|
||||
|
||||
# $Id$
|
||||
|
||||
Source Citations Outline styles
|
||||
------------------------------------------------------ */
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
*************************************************
|
||||
GRAMPS Cascading Style Sheet
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
*************************************************
|
||||
GRAMPS Cascading Style Sheet
|
||||
|
||||
@@ -25,6 +25,7 @@ GRAMPS Cascading Style Sheet
|
||||
Style Name: Web_Navigation-Horizontal.css
|
||||
******************************************************
|
||||
|
||||
# $Id$
|
||||
|
||||
Body Element
|
||||
------------------------------------------------------ */
|
||||
@@ -32,6 +33,7 @@ body {
|
||||
background-color: #00029D;
|
||||
color: #00029D;
|
||||
width: 100%;
|
||||
padding: 0px 14px;
|
||||
}
|
||||
|
||||
/* Navigation Menus
|
||||
|
||||
@@ -19,8 +19,6 @@ Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2011 Michiel D. Nauta
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -56,6 +54,7 @@ Middle images/Web_Mainz_Mid.png
|
||||
Middle Light images/Web_Mainz_MidLight.png
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
--------------------------------------------------------------------------------------------
|
||||
@@ -64,30 +63,19 @@ General Elements
|
||||
-----------------------------------------------------------------*/
|
||||
body {
|
||||
font-family: Georgia, serif;
|
||||
font-size: 100%;
|
||||
font-size: 90%;
|
||||
color: #7D5925;
|
||||
background: url(../images/Web_Mainz_Bkgd.png) black repeat;
|
||||
}
|
||||
body > div {
|
||||
width: 85%;
|
||||
width: 950px;
|
||||
margin: 0px auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
overflow: hidden;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
padding: 0px 1.5em;
|
||||
}
|
||||
.content {
|
||||
padding: 1.5em 1.5em;
|
||||
overflow: auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
@@ -95,13 +83,6 @@ div.snapshot div.thumbnail {
|
||||
div.snapshot a {
|
||||
display: inline;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* General Text
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -110,12 +91,6 @@ h1 {
|
||||
font-style: italic;
|
||||
margin-left: 2em;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
text-align: center;
|
||||
}
|
||||
h3 {
|
||||
font-size: xx-large;
|
||||
font-weight: normal;
|
||||
@@ -139,7 +114,6 @@ h4 {
|
||||
a {
|
||||
color: #7D5925;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a[href]:hover, a[href]:active {
|
||||
background-color: #FFFFE7;
|
||||
@@ -170,7 +144,7 @@ div#nav ul li, #subnavigation ul li {
|
||||
float: left;
|
||||
}
|
||||
div#nav ul li a, #subnavigation ul li a {
|
||||
display: run-in;
|
||||
display: block;
|
||||
padding: 0.4em 0.8em 0.3em 0.8em;
|
||||
font-size: smaller;
|
||||
font-family: sans-serif;
|
||||
@@ -224,93 +198,6 @@ div#alphanav ul li a:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #D8C19F;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
-----------------------------------------------------------------*/
|
||||
table {
|
||||
@@ -420,10 +307,6 @@ table#SortByCount thead th.ColumnQuantity a:after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
-----------------------------------------------------------------*/
|
||||
#GalleryNav {
|
||||
@@ -468,13 +351,6 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
margin: 0px auto;
|
||||
display:block;
|
||||
border: solid 1px #7D5925;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* Sources
|
||||
@@ -490,7 +366,7 @@ div#SourceDetail {
|
||||
padding-bottom: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
#Contact #summaryarea #GalleryDisplay img {
|
||||
#Contact img {
|
||||
display: block;
|
||||
margin: 0px auto 1em auto;
|
||||
border: solid 1px #7D5925;
|
||||
@@ -516,31 +392,16 @@ div#SourceDetail {
|
||||
|
||||
/* SubSection
|
||||
-----------------------------------------------------------------*/
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay {
|
||||
#Home img, #Introduction img {
|
||||
display: block;
|
||||
margin: 1em auto;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay {
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: black;
|
||||
}
|
||||
.subsection {
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
}
|
||||
.subsection p {
|
||||
margin: 0px;
|
||||
@@ -557,43 +418,20 @@ div#families table.fixed_subtables table.eventlist th:first-child {
|
||||
div#families table.fixed_subtables table.eventlist th:last-child {
|
||||
width: 5em;
|
||||
}
|
||||
div#families .infolist h4 {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* SubSection : Gallery
|
||||
-----------------------------------------------------------------*/
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery {
|
||||
/* float container stretch, see www.quirksmode.org/css/clearing.html */
|
||||
overflow: hidden;
|
||||
}
|
||||
#indivgallery .thumbnail {
|
||||
float: left;
|
||||
width: 130px;
|
||||
max-width: 130px;
|
||||
max-height: 150px;
|
||||
font-size: smaller;
|
||||
text-align: center;
|
||||
margin: 0.5em;
|
||||
background-color: white;
|
||||
}
|
||||
#indivgallery img {
|
||||
border: solid 1px #7D5925;
|
||||
@@ -602,43 +440,6 @@ div#families .infolist h4 {
|
||||
/* ## remove this line and the comment markers from the line below to hide the description in Individual Gallery
|
||||
display: none; */
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* SubSection : Narrative
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -691,32 +492,20 @@ div.grampsstylednote p {
|
||||
-----------------------------------------------------------------*/
|
||||
#footer {
|
||||
clear: both;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
|
||||
border-top: dashed 1px #7D5925;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
#footer p#createdate {
|
||||
float: left;
|
||||
width: 50%;
|
||||
text-align: left;
|
||||
margin-left: 10px;
|
||||
}
|
||||
#footer p#copyright {
|
||||
float: right;
|
||||
width: 40%;
|
||||
text-align: right;
|
||||
}
|
||||
#footer p#copyright img {
|
||||
float: right;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 10px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
#footer > * {
|
||||
font-size: 80%;
|
||||
background: url(../images/Web_Mainz_MidLight.png) #FFF2C6;
|
||||
}
|
||||
|
||||
/* Overwritten
|
||||
-----------------------------------------------------------------*/
|
||||
@@ -735,6 +524,7 @@ div#map_canvas {
|
||||
table.calendar {
|
||||
table-layout: fixed;
|
||||
empty-cells: show;
|
||||
width: 950px;
|
||||
margin: 0px auto;
|
||||
background: url(../images/Web_Mainz_Mid.png) #FFF2C6 repeat;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,6 @@ Go to <http://gramps-project.org/> to learn more!
|
||||
Copyright 2008 Jason M. Simanek
|
||||
Copyright 2009 Stephane Charette
|
||||
Copyright (C) 2008-2011 Rob G. Healey <robhealey1@gmail.com>
|
||||
Copyright 2018 Theo van Rijn
|
||||
Copyright (C) 2019 Serge Noiraud
|
||||
|
||||
This file is part of the GRAMPS program.
|
||||
|
||||
@@ -47,6 +45,7 @@ gray #696969
|
||||
green #5D835F
|
||||
--------------------------------------------------------------------------------------------
|
||||
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
--------------------------------------------------------------------------------------------
|
||||
@@ -84,21 +83,10 @@ img {
|
||||
.thumbnail a:hover {
|
||||
background:none;
|
||||
}
|
||||
#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 98%;
|
||||
}
|
||||
#outerwrapper > div {
|
||||
clear: both;
|
||||
}
|
||||
.content {
|
||||
padding-top: 1cm;
|
||||
background-color:#FFF;
|
||||
}
|
||||
#ThumbnailPreview div.snapshot {
|
||||
float: right;
|
||||
margin: 0;
|
||||
}
|
||||
.content div.snapshot {
|
||||
float:right;
|
||||
margin:1.6em;
|
||||
@@ -113,12 +101,6 @@ img {
|
||||
.content div.snapshot div.thumbnail span {
|
||||
display:none;
|
||||
}
|
||||
/* Less whitespace on smaller real estate. */
|
||||
@media only screen and (max-width: 1080px) {
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
.fullclear {
|
||||
width:100%;
|
||||
height:1px;
|
||||
@@ -133,7 +115,7 @@ h1 {
|
||||
font:normal 2em/1.2em serif;
|
||||
}
|
||||
h2 {
|
||||
display:block;
|
||||
display:none;
|
||||
}
|
||||
h3 {
|
||||
font:normal 2em/1.2em serif;
|
||||
@@ -157,6 +139,7 @@ h5, h6 {
|
||||
|
||||
p#description {
|
||||
color:#542;
|
||||
max-width:800px;
|
||||
margin:0;
|
||||
padding:1em 20px;
|
||||
background-color:#FFF;
|
||||
@@ -273,100 +256,6 @@ div#subnavigation ul li.CurrentSection a {
|
||||
border-width: 0 0 1px 0;
|
||||
}
|
||||
|
||||
/* Responsive navigation */
|
||||
a.navIcon {
|
||||
display: none;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
div#header::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
div#nav::after {
|
||||
content: "";
|
||||
clear: both;
|
||||
display: table;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1080px) {
|
||||
|
||||
/* Use less & all realestate on mobiles. */
|
||||
div#outerwrapper {
|
||||
margin: 5px auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.nav {
|
||||
background: none; /* Works in IE too. */
|
||||
/*
|
||||
width: 200px;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
*/
|
||||
}
|
||||
|
||||
/* Undo some of the #nav styles - to enable the class .nav */
|
||||
.nav ul, #subnavigation ul {
|
||||
list-style: none;
|
||||
min-width: unset;
|
||||
width: 200px;
|
||||
height: 32px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.nav ul li, #subnavigation ul li {
|
||||
float: unset;
|
||||
display: unset
|
||||
}
|
||||
|
||||
/* Start with hidden menu options */
|
||||
/* .nav li:not(:first-child) {display: none;} */
|
||||
.nav li {display: none;}
|
||||
.nav ul {display: none;}
|
||||
|
||||
a.navIcon {
|
||||
font-size:1.3em;
|
||||
display: block;
|
||||
margin: 0.1em 0.4em 0.4em 0.4em;
|
||||
float: left;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.nav.responsive {position: absolute; display: block; z-index: 100;}
|
||||
.nav.responsive a.icon {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav.responsive ::after {
|
||||
/* need to remove the "|" when we are in the dropdown menu. */
|
||||
color: #A97;
|
||||
background-color: #A97;
|
||||
}
|
||||
.nav.responsive li {
|
||||
/* float: left; */
|
||||
display: block;
|
||||
text-align: left;
|
||||
background-color: #A97;
|
||||
/* required by IE */
|
||||
float: left;
|
||||
clear: both;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
div#nav ul, #subnavigation ul {
|
||||
padding-left: 0px;
|
||||
}
|
||||
|
||||
.content {
|
||||
padding: 0em 0.5em;
|
||||
}
|
||||
}
|
||||
|
||||
/* Main Table
|
||||
----------------------------------------------------- */
|
||||
table.infolist {
|
||||
@@ -389,6 +278,7 @@ table.infolist tr th a:hover {
|
||||
table.infolist tr td {
|
||||
font:normal 1.1em/1.4em serif;
|
||||
vertical-align:middle;
|
||||
padding:.1em 10px;
|
||||
}
|
||||
table.infolist tr td a {
|
||||
display:block;
|
||||
@@ -508,30 +398,30 @@ table.surname thead tr th.ColumnParents, table.surname tbody tr td.ColumnParents
|
||||
/* Individuals
|
||||
----------------------------------------------------- */
|
||||
#Individuals { }
|
||||
#Individuals table.IndividualList {
|
||||
#Individuals table.individuallist {
|
||||
border-bottom:solid 1px #A97;
|
||||
}
|
||||
#Individuals table.IndividualList tbody tr td {
|
||||
#Individuals table.individuallist tbody tr td {
|
||||
border-bottom:dashed 1px #C1B398;
|
||||
}
|
||||
#Individuals table.IndividualList tbody tr td a:hover {
|
||||
#Individuals table.individuallist tbody tr td a:hover {
|
||||
text-decoration:none;
|
||||
}
|
||||
table.IndividualList tbody tr td.ColumnSurname a:hover, table.IndividualList tbody tr td.ColumnSurname a:active {
|
||||
table.individuallist tbody tr td.ColumnSurname a:hover, table.individuallist tbody tr td.ColumnSurname a:active {
|
||||
cursor:default;
|
||||
color:black;
|
||||
background:none;
|
||||
}
|
||||
table.IndividualList tbody tr td.ColumnName {
|
||||
table.individuallist tbody tr td.ColumnName {
|
||||
padding:0;
|
||||
background-color:#FFF;
|
||||
}
|
||||
table.IndividualList tbody tr td.ColumnName a {
|
||||
table.individuallist tbody tr td.ColumnName a {
|
||||
display:block;
|
||||
padding:.1em .1em;
|
||||
padding:.6em 10px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
table.IndividualList tbody tr td.ColumnName a:hover {
|
||||
table.individuallist tbody tr td.ColumnName a:hover {
|
||||
background-color:#C1B398;
|
||||
}
|
||||
#Individuals div table.infolist tr td p {
|
||||
@@ -689,10 +579,6 @@ table.relationships tbody tr td.ColumnPartner a:hover {
|
||||
content: "";
|
||||
}
|
||||
|
||||
table.eventlist tbody tr td.ColumnSources {
|
||||
width: 5%;
|
||||
}
|
||||
|
||||
/* Gallery
|
||||
----------------------------------------------------- */
|
||||
#Gallery { }
|
||||
@@ -747,13 +633,6 @@ table.eventlist tbody tr td.ColumnSources {
|
||||
}
|
||||
#GalleryDisplay img {
|
||||
margin:0 auto;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1600px) {
|
||||
#GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
#GalleryDetail div#summaryarea{
|
||||
margin:0;
|
||||
@@ -799,6 +678,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
/* Contact
|
||||
----------------------------------------------------- */
|
||||
#Contact #summaryarea {
|
||||
width:500px;
|
||||
margin:0 auto;
|
||||
padding:3em;
|
||||
background-color:#F1ECE2;
|
||||
@@ -816,6 +696,7 @@ body#ThumbnailPreview div#references table.infolist tbody tr td.ColumnName {
|
||||
padding:0;
|
||||
}
|
||||
#researcher span {
|
||||
float:left;
|
||||
display:block;
|
||||
font:normal .9em/1.4em serif;
|
||||
margin-right:.4em;
|
||||
@@ -854,7 +735,7 @@ table.download {
|
||||
width:100%;
|
||||
}
|
||||
table.download img {
|
||||
float:none;
|
||||
float:center;
|
||||
}
|
||||
table.download thead tr th {
|
||||
text-align:center;
|
||||
@@ -897,32 +778,20 @@ table.download td.Modified {
|
||||
|
||||
/* Subsections
|
||||
----------------------------------------------------- */
|
||||
#Home #GalleryDisplay, #Introduction #GalleryDisplay, #Contact #GalleryDisplay {
|
||||
float: right;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
#Home, #Introduction, #Contact {
|
||||
padding:2em 0 3em 0;
|
||||
}
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
display: block;
|
||||
max-width: 950px;
|
||||
height: auto;
|
||||
float: right;
|
||||
}
|
||||
@media only screen and (max-width: 1080px) {
|
||||
#Home #GalleryDisplay img, #Introduction #GalleryDisplay img,
|
||||
#Contact #GalleryDisplay img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
#Home p, #Introduction p {
|
||||
margin:0 20px 1em 20px;
|
||||
}
|
||||
#Home img, #Introduction img {
|
||||
float:right;
|
||||
margin:0;
|
||||
padding:0 20px 3em 2em;
|
||||
}
|
||||
#Home a, #Introduction a, #Contact a {
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
div.subsection{
|
||||
padding-bottom:.5em;
|
||||
@@ -1056,26 +925,6 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
|
||||
/* Subsections : Gallery
|
||||
----------------------------------------------------- */
|
||||
#gallery {
|
||||
background-color: green;
|
||||
}
|
||||
#indivgallery {
|
||||
background-color: white;
|
||||
}
|
||||
#gallery .gallerycell {
|
||||
float: left;
|
||||
width: 130px;
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
background-color: white;
|
||||
border-top: solid 1px #999;
|
||||
border-right: solid 1px #999;
|
||||
}
|
||||
#gallery .thumbnail {
|
||||
font-size: smaller;
|
||||
margin: 3em auto;
|
||||
}
|
||||
#indivgallery h4 {
|
||||
margin-bottom:1em;
|
||||
}
|
||||
@@ -1083,49 +932,14 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
margin:0;
|
||||
float:left;
|
||||
width:130px;
|
||||
height:150px;
|
||||
text-align:center;
|
||||
background-color: white;
|
||||
}
|
||||
#gallery div.indexno {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
margin: 0;
|
||||
}
|
||||
#indivgallery div.date {
|
||||
float: right;
|
||||
width: 1.8em;
|
||||
font-size: large;
|
||||
text-align: center;
|
||||
background-color: #CCC;
|
||||
color: #555;
|
||||
}
|
||||
#indivgallery .thumbnail ul {
|
||||
font-size: smaller;
|
||||
list-style: none;
|
||||
padding: 0px;
|
||||
}
|
||||
#indivgallery .thumbnail ul li:first-child {
|
||||
border-style: none;
|
||||
}
|
||||
#indivgallery .thumbnail ul li {
|
||||
border-top: dashed 1px #CCC;
|
||||
border-top-style: dashed;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
#gallery img {
|
||||
border: solid 1px #999;
|
||||
}
|
||||
#indivgallery .thumbnail a {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:0;
|
||||
background:none;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
#indivgallery .thumbnail a img {
|
||||
margin:0;
|
||||
@@ -1142,21 +956,17 @@ div#Addresses table.infolist tr td a, div#Addresses table.infolist tr td p a {
|
||||
margin:0 auto;
|
||||
padding:0;
|
||||
}
|
||||
div.snapshot div.thumbnail {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Subsections : Narrative
|
||||
----------------------------------------------------- */
|
||||
div.narrative {
|
||||
padding-bottom:0;
|
||||
}
|
||||
i + div.grampsstylednote p {
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
}
|
||||
.narrative p {
|
||||
margin: 0.1em 0 0.2em 0;
|
||||
font:normal .9em/1.4em sans-serif;
|
||||
margin-top:.5em;
|
||||
margin-bottom:0;
|
||||
padding:0 20px 1em 20px;
|
||||
}
|
||||
|
||||
/* Subsections : References
|
||||
@@ -1258,9 +1068,6 @@ div#pedigree {
|
||||
background-color: #542;
|
||||
border-top: solid 8px #A97;
|
||||
}
|
||||
#footer > * {
|
||||
font-size: 80%;
|
||||
}
|
||||
#footer a, #footer a:visited {
|
||||
text-decoration: none;
|
||||
color: #C1B398;
|
||||
@@ -1288,7 +1095,7 @@ div#pedigree {
|
||||
margin-right: 10px;
|
||||
}
|
||||
#footer p#copyright img {
|
||||
margin-right: 10px;
|
||||
margin-right: 10px[
|
||||
}
|
||||
#user_footer {
|
||||
width: 70%;
|
||||
|
||||
@@ -41,6 +41,7 @@ black #000
|
||||
white #FFF
|
||||
---------------------------------------------------------------------------------------------------
|
||||
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
--------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -45,6 +45,7 @@ Unknown #000
|
||||
Males Web_Gender_Male.png
|
||||
Females Web_Gender_Female.png
|
||||
|
||||
# $Id$
|
||||
|
||||
NarrativeWeb Styles
|
||||
-------------------------------------------------------------------------------------------- */
|
||||
@@ -155,6 +156,7 @@ h5, h6 {
|
||||
margin:1.3em 0 .5em 1em;
|
||||
}
|
||||
p#description {
|
||||
max-width:800px;
|
||||
margin:0;
|
||||
padding:1em 20px;
|
||||
}
|
||||
@@ -454,30 +456,30 @@ div#Individuals {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
div#Individuals table.IndividualList {
|
||||
div#Individuals table.individuallist {
|
||||
border-bottom: solid 1px #5D835F;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td {
|
||||
div#Individuals table.individuallist tbody tr td {
|
||||
border-bottom: dashed 1px #5D835F;
|
||||
background-color: #D8F3D6;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td a {
|
||||
div#Individuals table.individuallist tbody tr td a {
|
||||
display: block;
|
||||
padding: .6em 10px;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:hover,
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnSurname a:active {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnSurname a:hover,
|
||||
div#Individuals table.individuallist tbody tr td.ColumnSurname a:active {
|
||||
cursor:default;
|
||||
color: #000;
|
||||
background:none;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnName {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnName {
|
||||
background-color: #FFF;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnName a {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnName a {
|
||||
vertical-align:middle;
|
||||
}
|
||||
div#Individuals table.IndividualList tbody tr td.ColumnPartner {
|
||||
div#Individuals table.individuallist tbody tr td.ColumnPartner {
|
||||
background-color: #FFF;
|
||||
}
|
||||
div#Individuals div table.infolist tr td p {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
@@ -20,10 +20,10 @@
|
||||
#
|
||||
# $Id: $
|
||||
#
|
||||
*******************************************************************************
|
||||
**************************************************************************************************
|
||||
GRAMPS Cascading Style Sheet
|
||||
Style Name: Combined Ancestor Tree Style Sheet
|
||||
*******************************************************************************
|
||||
***************************************************************************************************
|
||||
#
|
||||
===== Ancestor Graph Color Scheme =====
|
||||
Males #BCEAF6
|
||||
@@ -33,8 +33,10 @@ Unknown #000
|
||||
===== Web Graphics =====
|
||||
Males Web_Gender_Male.png
|
||||
Females Web_Gender_Female.png
|
||||
# -------------------------------------------------------------------------- #
|
||||
/* Subsections : Ancestors Tree -------------------------------------------- */
|
||||
# ------------------------------------------------------------------------------------------------- */
|
||||
|
||||
/* Subsections : Ancestors Tree
|
||||
----------------------------------------------------- */
|
||||
#tree {
|
||||
page-break-before:always;
|
||||
margin:0;
|
||||
@@ -43,15 +45,12 @@ Females Web_Gender_Female.png
|
||||
}
|
||||
#treeContainer {
|
||||
position:relative;
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
overflow: visible;
|
||||
z-index:1;
|
||||
}
|
||||
#treeContainer div.boxbg {
|
||||
position:absolute;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
margin:0;
|
||||
padding:0;
|
||||
background:none;
|
||||
}
|
||||
#treeContainer div.boxbg a,
|
||||
@@ -59,43 +58,41 @@ Females Web_Gender_Female.png
|
||||
position:relative;
|
||||
z-index:10;
|
||||
display:block;
|
||||
font:normal 1.1em/1.4em sans-serif;
|
||||
font:normal .7em/1.4em sans-serif;
|
||||
text-align:center;
|
||||
word-break:break-word;
|
||||
word-wrap:break-word;
|
||||
text-decoration:none;
|
||||
color: #00029D;
|
||||
width:280px;
|
||||
min-height: 70px;
|
||||
width:118px;
|
||||
padding:5px 20px 7px 20px;
|
||||
margin-left:16px;
|
||||
border: solid 2px #000;
|
||||
border-radius: 10px;
|
||||
background-color: #FFF;
|
||||
border: solid 1px #000;
|
||||
}
|
||||
#treeContainer div.boxbg a.noThumb,
|
||||
#treeContainer div.AncCol4 a,
|
||||
#treeContainer div.AncCol3 a,
|
||||
#treeContainer div.AncCol4 a,
|
||||
#treeContainer div.AncCol3 span.unlinked,
|
||||
#treeContainer div.AncCol4 span.unlinked {
|
||||
margin-top:10px;
|
||||
float: right;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover {
|
||||
position:relative;
|
||||
z-index:999;
|
||||
font-size:1.3em;
|
||||
word-break:break-word;
|
||||
word-wrap:break-word;
|
||||
font-size:1em;
|
||||
text-decoration:none;
|
||||
color: #00029D;
|
||||
width:400px;
|
||||
width:190px;
|
||||
margin-left:-20px;
|
||||
padding: 0px 0px 0px 40px;
|
||||
padding:10px 25px 12px 25px;
|
||||
border: solid 2px #000;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover,
|
||||
#treeContainer div.boxbg a:hover,
|
||||
#treeContainer div.AncCol3 a:hover,
|
||||
#treeContainer div.AncCol4 a:hover {
|
||||
margin-top:-44px;
|
||||
}
|
||||
#treeContainer div.boxbg a.noThumb:hover {
|
||||
margin-top:0;
|
||||
padding-left: 10px;
|
||||
}
|
||||
#treeContainer div.AncCol0 a:hover {
|
||||
margin-left:12px;
|
||||
@@ -105,73 +102,48 @@ Females Web_Gender_Female.png
|
||||
}
|
||||
#treeContainer div.boxbg span.thumbnail {
|
||||
display:block;
|
||||
position: absolute;
|
||||
max-width:85px;
|
||||
max-height:75px;
|
||||
left: 3px;
|
||||
top: 3px;
|
||||
max-width:80px;
|
||||
max-height:65px;
|
||||
margin:0 auto;
|
||||
padding:4px 0;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail table td.img {
|
||||
padding-right: 5px;
|
||||
#treeContainer div.boxbg span.thumbnail img {
|
||||
max-width:80px;
|
||||
max-height:65px;
|
||||
margin:0 auto;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail:hover table td.img {
|
||||
padding-right: 9px;
|
||||
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {
|
||||
height:80px;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail table td.name {
|
||||
padding-top:3px;
|
||||
padding-left: 2px;
|
||||
padding-right: 23px;
|
||||
width: 90%;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail img {
|
||||
margin-left:0px;
|
||||
padding-left: 0px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#treeContainer div.boxbg a.thumbnail:hover img {
|
||||
max-height:90%;
|
||||
margin-left:5px;
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
top: 4px;
|
||||
border-radius: 5px;
|
||||
}
|
||||
#treeContainer div.boxbg table td:first-child, table th:first-child {
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
#IndividualDetail div.subsection table tr td:first-child {
|
||||
padding-left: 5px;
|
||||
padding-top: 5px;
|
||||
}
|
||||
#treeContainer #treeContainer div.AncCol4 span.thumbnail {
|
||||
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {
|
||||
display:none;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover span.thumbnail {
|
||||
display:block;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg span.fullname {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg span.shortname {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg a:hover span.fullname {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#treeContainer div.boxbg a:hover span.shortname {
|
||||
display: none;
|
||||
}
|
||||
#treeContainer div.boxbg a:hover {
|
||||
float: right;
|
||||
margin-top: 10px;
|
||||
border: solid 4px #000;
|
||||
}
|
||||
|
||||
|
||||
#treeContainer div.male a,
|
||||
#treeContainer div.male span.unlinked {
|
||||
background:url(../images/Web_Gender_Male.png) #BCEAF6 no-repeat top right;
|
||||
}
|
||||
#treeContainer div.female a,
|
||||
#treeContainer div.female a,
|
||||
#treeContainer div.female span.unlinked {
|
||||
background:url(../images/Web_Gender_Female.png) #FFC0CB no-repeat top right;
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ Style Author: Stephane Charette and Jason Simanek
|
||||
Image Gallery
|
||||
-------------
|
||||
|
||||
# $Id$
|
||||
|
||||
ensure RegionBox <ol> is hidden and has no margins/padding that would shift the image */
|
||||
ol.RegionBox {
|
||||
|
||||
@@ -18,11 +18,13 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
###################################################### */
|
||||
body#FamilyMap {
|
||||
background-color: #000;
|
||||
padding: 0 14px;
|
||||
width: 965px;
|
||||
}
|
||||
|
||||
/* Family Maps
|
||||
@@ -31,11 +33,8 @@ body#FamilyMap {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
border: solid 4px #000;
|
||||
margin: 0px auto;
|
||||
width: 800px;
|
||||
height: 400px;
|
||||
max-width: 90%;
|
||||
max-height: 90%;
|
||||
width: 931px;
|
||||
height: 1000px;
|
||||
}
|
||||
|
||||
/* Place Maps
|
||||
@@ -45,8 +44,6 @@ div#place_canvas {
|
||||
border: solid 4px #000;
|
||||
width: 500px;
|
||||
height: 400px;
|
||||
max-width: 90%;
|
||||
max-height: 90%;
|
||||
}
|
||||
button#drop {
|
||||
background-color: purple;
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
@@ -1,43 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<component type="desktop-application">
|
||||
<id>org.gramps.gramps</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>Gramps</name>
|
||||
<summary>Genealogical research program</summary>
|
||||
|
||||
<description>
|
||||
<_p>Gramps is a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.</_p>
|
||||
<_p>It gives you the ability to record the many details of the life of an individual as well as the complex relationships between various people, places and events.</_p>
|
||||
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
|
||||
</description>
|
||||
|
||||
<launchable type="desktop-id">gramps.desktop</launchable>
|
||||
<url type="homepage">https://gramps-project.org/</url>
|
||||
<url type="bugtracker">https://gramps-project.org/bugs/</url>
|
||||
<url type="help">https://gramps-project.org/wiki/index.php?title=Main_page</url>
|
||||
<project_license>GPL-2.0+</project_license>
|
||||
<developer_name>Gramps Development Team</developer_name>
|
||||
|
||||
<screenshots>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/5f/AppData1.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData2.png</image>
|
||||
</screenshot>
|
||||
<screenshot type="default">
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/e/e9/AppData3.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/6/68/AppData4.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image width="1226" height="740">https://www.gramps-project.org/wiki/images/5/50/AppData5.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
<provides>
|
||||
<binary>gramps</binary>
|
||||
</provides>
|
||||
|
||||
</component>
|
||||
<application>
|
||||
<id type="desktop">gramps.desktop</id>
|
||||
<licence>CC0</licence>
|
||||
<description>
|
||||
<_p>Gramps is a genealogy program that is both intuitive for hobbyists and feature-complete for professional genealogists.</_p>
|
||||
<_p>It gives you the ability to record the many details of the life of an individual as well as the complex relationships between various people, places and events.</_p>
|
||||
<_p>All of your research is kept organized, searchable and as precise as you need it to be.</_p>
|
||||
</description>
|
||||
<url type="homepage">http://gramps-project.org/</url>
|
||||
<screenshots>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/5f/AppData1.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData2.png</screenshot>
|
||||
<screenshot type="default" width="1226" height="740">http://www.gramps-project.org/wiki/images/e/e9/AppData3.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/6/68/AppData4.png</screenshot>
|
||||
<screenshot width="1226" height="740">http://www.gramps-project.org/wiki/images/5/50/AppData5.png</screenshot>
|
||||
</screenshots>
|
||||
</application>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!-- $Id$ -->
|
||||
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/x-gramps">
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
|
||||
$Id$
|
||||
-->
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
|
||||
@@ -21,18 +21,19 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
# $Id$
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the Document Type Definition file for v1.7.1
|
||||
This is the Document Type Definition file for v1.6.0
|
||||
of the GRAMPS XML genealogy data format.
|
||||
Please use the following formal public identifier to identify it:
|
||||
|
||||
"-//GRAMPS//DTD GRAMPS XML V1.7.1//EN"
|
||||
"-//GRAMPS//DTD GRAMPS XML V1.6.0//EN"
|
||||
|
||||
For example:
|
||||
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.7.1//EN"
|
||||
"http://gramps-project.org/xml/1.7.1/grampsxml.dtd"
|
||||
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.6.0//EN"
|
||||
"http://gramps-project.org/xml/1.6.0/grampsxml.dtd"
|
||||
[...]>
|
||||
-->
|
||||
|
||||
@@ -61,7 +62,7 @@ DATABASE
|
||||
<!ELEMENT database (header, name-formats?, tags?, events?, people?, families?,
|
||||
citations?, sources?, places?, objects?, repositories?,
|
||||
notes?, bookmarks?, namemaps?)>
|
||||
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.7.1/">
|
||||
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.6.0/">
|
||||
|
||||
|
||||
<!-- ************************************************************
|
||||
@@ -121,7 +122,6 @@ GENDER has values of M, F, or U.
|
||||
|
||||
<!ELEMENT name (first?, call?, surname*, suffix?, title?, nick?, familynick?, group?,
|
||||
(daterange|datespan|dateval|datestr)?, noteref*, citationref*)>
|
||||
<!-- (Unknown|Also Know As|Birth Name|Married Name|Other Name) -->
|
||||
<!ATTLIST name
|
||||
alt (0|1) #IMPLIED
|
||||
type CDATA #IMPLIED
|
||||
@@ -138,8 +138,6 @@ GENDER has values of M, F, or U.
|
||||
<!ELEMENT familynick (#PCDATA)>
|
||||
<!ELEMENT group (#PCDATA)>
|
||||
<!ELEMENT surname (#PCDATA)>
|
||||
<!-- (Unknown|Inherited|Given|Taken|Patronymic|Matronymic|Feudal|
|
||||
Pseudonym|Patrilineal|Matrilineal|Occupation|Location) -->
|
||||
<!ATTLIST surname
|
||||
prefix CDATA #IMPLIED
|
||||
prim (1|0) #IMPLIED
|
||||
@@ -198,13 +196,12 @@ FAMILY
|
||||
<!ELEMENT mother EMPTY>
|
||||
<!ATTLIST mother hlink IDREF #REQUIRED>
|
||||
|
||||
<!-- (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) -->
|
||||
<!ELEMENT childref (citationref*,noteref*)>
|
||||
<!ATTLIST childref
|
||||
hlink IDREF #REQUIRED
|
||||
priv (0|1) #IMPLIED
|
||||
mrel CDATA #IMPLIED
|
||||
frel CDATA #IMPLIED
|
||||
mrel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
||||
frel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT type (#PCDATA)>
|
||||
@@ -251,25 +248,20 @@ PLACES
|
||||
|
||||
<!ELEMENT places (placeobj)*>
|
||||
|
||||
<!ELEMENT placeobj (ptitle?, pname+, code?, coord?, placeref*, location*,
|
||||
<!ELEMENT placeobj (ptitle?, code?, alt_name*, coord?, placeref*, location*,
|
||||
objref*, url*, noteref*, citationref*, tagref*)>
|
||||
<!ATTLIST placeobj
|
||||
id CDATA #IMPLIED
|
||||
handle ID #REQUIRED
|
||||
priv (0|1) #IMPLIED
|
||||
change CDATA #REQUIRED
|
||||
name CDATA #REQUIRED
|
||||
type CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT pname (daterange|datespan|dateval|datestr)?>
|
||||
|
||||
<!ATTLIST pname
|
||||
lang CDATA #IMPLIED
|
||||
value CDATA #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT ptitle (#PCDATA)>
|
||||
<!ELEMENT code (#PCDATA)>
|
||||
<!ELEMENT alt_name (#PCDATA)>
|
||||
|
||||
<!ELEMENT coord EMPTY>
|
||||
<!ATTLIST coord
|
||||
|
||||
@@ -25,13 +25,13 @@
|
||||
-->
|
||||
|
||||
<!--
|
||||
This is the RELAX NG schema for the GRAMPS XML genealogy data format.
|
||||
This is the RELAX NG schema for the Gramps XML genealogy data format.
|
||||
-->
|
||||
|
||||
|
||||
<grammar
|
||||
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
|
||||
ns="http://gramps-project.org/xml/1.7.1/"
|
||||
ns="http://gramps-project.org/xml/1.6.0/"
|
||||
xmlns="http://relaxng.org/ns/structure/1.0">
|
||||
|
||||
<start><element name="database">
|
||||
@@ -210,7 +210,16 @@
|
||||
</define>
|
||||
|
||||
<define name="child-rel">
|
||||
<text/>
|
||||
<choice>
|
||||
<value>Birth</value>
|
||||
<value>Adopted</value>
|
||||
<value>Stepchild</value>
|
||||
<value>Sponsored</value>
|
||||
<value>Foster</value>
|
||||
<value>None</value>
|
||||
<value>Other</value>
|
||||
<value>Unknown</value>
|
||||
</choice>
|
||||
</define>
|
||||
|
||||
<define name="name-content">
|
||||
@@ -221,7 +230,13 @@
|
||||
<optional><attribute name="priv">
|
||||
<ref name="priv-content"/>
|
||||
</attribute></optional>
|
||||
<optional><attribute name="type"><text/></attribute></optional>
|
||||
<optional><attribute name="type"><choice>
|
||||
<value>Unknown</value>
|
||||
<value>Also Known As</value>
|
||||
<value>Birth Name</value>
|
||||
<value>Married Name</value>
|
||||
<value>Other Name</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="sort"><text/></attribute></optional>
|
||||
<optional><attribute name="display"><text/></attribute></optional>
|
||||
<optional><element name="first"><text/></element></optional>
|
||||
@@ -250,7 +265,20 @@
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="derivation"><text/></attribute></optional>
|
||||
<optional><attribute name="derivation"><choice>
|
||||
<value>Unknown</value>
|
||||
<value>Inherited</value>
|
||||
<value>Given</value>
|
||||
<value>Taken</value>
|
||||
<value>Patronymic</value>
|
||||
<value>Matronymic</value>
|
||||
<value>Feudal</value>
|
||||
<value>Pseudonym</value>
|
||||
<value>Patrilineal</value>
|
||||
<value>Matrilineal</value>
|
||||
<value>Occupation</value>
|
||||
<value>Location</value>
|
||||
</choice></attribute></optional>
|
||||
<optional><attribute name="connector"><text/></attribute></optional>
|
||||
</define>
|
||||
|
||||
@@ -451,12 +479,11 @@
|
||||
|
||||
<define name="place-content">
|
||||
<ref name="primary-object"/>
|
||||
<attribute name="name"><text/></attribute>
|
||||
<attribute name="type"><text/></attribute>
|
||||
<optional><element name="ptitle"><text/></element></optional>
|
||||
<oneOrMore><element name="pname">
|
||||
<ref name="placename-content"/>
|
||||
</element></oneOrMore>
|
||||
<optional><element name="code"><text/></element></optional>
|
||||
<zeroOrMore><element name="alt_name"><text/></element></zeroOrMore>
|
||||
<optional><element name="coord">
|
||||
<attribute name="long"><text/></attribute>
|
||||
<attribute name="lat"><text/></attribute>
|
||||
@@ -745,12 +772,6 @@
|
||||
<text/>
|
||||
</define>
|
||||
|
||||
<define name="placename-content">
|
||||
<attribute name="value"><text/></attribute>
|
||||
<optional><attribute name="lang"><text/></attribute></optional>
|
||||
<optional><ref name="date-content"/></optional>
|
||||
</define>
|
||||
|
||||
<define name="placeref-content">
|
||||
<attribute name="hlink"><data type="IDREF"/></attribute>
|
||||
<optional><ref name="date-content"/></optional>
|
||||
|
||||
@@ -0,0 +1,859 @@
|
||||
/*!
|
||||
* jQuery FlexBox $Version: 0.9.6 $
|
||||
*
|
||||
* Copyright (c) 2008-2010 Noah Heldman and Fairway Technologies (http://www.fairwaytech.com/flexbox)
|
||||
* Licensed under Ms-PL (http://www.codeplex.com/flexbox/license)
|
||||
*
|
||||
* $Date: 2010-11-24 01:02:00 PM $
|
||||
* $Rev: 0.9.6.1 $
|
||||
*/
|
||||
(function($) {
|
||||
$.flexbox = function(div, o) {
|
||||
|
||||
// TODO: in straight type-ahead mode (showResults: false), if noMatchingResults, dropdown appears after new match
|
||||
// TODO: consider having options.mode (select, which replaces html select; combobox; suggest; others?)
|
||||
// TODO: on resize (at least when wrapping within a table), the arrow is pushed down to the next line
|
||||
// TODO: check for boundary/value problems (such as minChars of -1) and alert them
|
||||
// TODO: add options for advanced paging template
|
||||
// TODO: general cleanup and refactoring, commenting
|
||||
// TODO: detailed Exception handling, logging
|
||||
// TODO: FF2, up arrow from bottom has erratic scroll behavior (if multiple flexboxes on page)
|
||||
// TODO: FF2 (and maybe IE7): if maxVisibleRows == number of returned rows, height is a bit off (maybe set to auto?)
|
||||
// TODO: escape key only works from input box (this might be okay)
|
||||
// TODO: make .getJSON parameters (object and callback function) configurable (e.g. when calling yahoo image search)
|
||||
// TODO: escape key reverts to previous value (FF only?) (is this a good thing?)
|
||||
|
||||
// TEST: highlightMatches uses the case of whatever you typed in to replace the match string, which can look funny
|
||||
// TEST: handle pageDown and pageUp keys when scrolling through results
|
||||
// TEST: allow client-side paging (return all data initially, set paging:{pageSize:#}, and ensure maxCacheBytes is > 0)
|
||||
// TEST: accept json object as first parameter to flexbox instead of page source, and have it work like a combobox
|
||||
// TEST: implement no results template
|
||||
// TEST: implement noResultsText and class
|
||||
// TEST: watermark color should be configurable (and so should default input color)
|
||||
// TEST: exception handling and alerts for common mistakes
|
||||
// TEST: first example should use defaults ONLY
|
||||
// TEST: add property initialValue, so you can set it when the flexbox loads
|
||||
// TEST: handle hidden input value for form submissions
|
||||
// TEST: how can we allow programmatically setting the field value (and therefore hidden value). add jquery function?
|
||||
// TEST: use pageSize parameter as threshold to switch from no paging to paging based on results
|
||||
// TEST: if you type in an input value that matches the html, it might display html code (try typing "class" in the input box)
|
||||
// TEST: don't require all paging subprops (let default override)
|
||||
// TEST: when tabbing from one ffb to another, the previous ffb results flash...
|
||||
// TEST: IE7: when two non-paging ffbs right after each other, with only a clear-both div between them, the bottom ffb jumps down when selecting a value, then jumps back up on mouseover
|
||||
// TEST: FF2, make sure we scroll to top before showing results (maxVisibleRows only)
|
||||
// TEST: if maxVisibleRows is hiding the value the user types in to the input, scroll to that value (is this even possible?)
|
||||
// TEST: make sure caching supports multiple ffbs uniquely
|
||||
// TEST: when entering a number in the paging input box, the results are displayed twice
|
||||
|
||||
var timeout = false, // hold timeout ID for suggestion results to appear
|
||||
cache = [], // simple array with cacheData key values, MRU is the first element
|
||||
cacheData = [], // associative array holding actual cached data
|
||||
cacheSize = 0, // size of cache in bytes (cache up to o.maxCacheBytes bytes)
|
||||
delim = '\u25CA', // use an obscure unicode character (lozenge) as the cache key delimiter
|
||||
scrolling = false,
|
||||
pageSize = o.paging && o.paging.pageSize ? o.paging.pageSize : 0,
|
||||
retrievingRemoteData = false,
|
||||
$div = $(div).css('position', 'relative').css('z-index', 0);
|
||||
|
||||
// The hiddenField MUST be appended to the div before the input, or IE7 does not shift the dropdown below the input field (it overlaps)
|
||||
var $hdn = $('<input type="hidden"/>')
|
||||
.attr('id', $div.attr('id') + '_hidden')
|
||||
.attr('name', $div.attr('id'))
|
||||
.val(o.initialId)
|
||||
.appendTo($div);
|
||||
var $input = $('<input/>')
|
||||
.attr('id', $div.attr('id') + '_input')
|
||||
.attr('autocomplete', 'off')
|
||||
.addClass(o.inputClass)
|
||||
.css('width', o.width + 'px')
|
||||
.appendTo($div)
|
||||
.click(function(e) {
|
||||
if (o.watermark !== '' && this.value === o.watermark)
|
||||
this.value = '';
|
||||
else
|
||||
this.select();
|
||||
})
|
||||
.focus(function(e) {
|
||||
$(this).removeClass('watermark');
|
||||
})
|
||||
.blur(function(e) {
|
||||
if (this.value === '') $hdn.val('');
|
||||
setTimeout(function() { if (!$input.data('active')) hideResults(); }, 200);
|
||||
})
|
||||
.keydown(processKeyDown);
|
||||
|
||||
if (o.initialValue !== '')
|
||||
$input.val(o.initialValue).removeClass('watermark');
|
||||
else
|
||||
$input.val(o.watermark).addClass('watermark');
|
||||
|
||||
var arrowWidth = 0;
|
||||
if (o.showArrow && o.showResults) {
|
||||
var arrowClick = function() {
|
||||
if ($ctr.is(':visible')) {
|
||||
hideResults();
|
||||
}
|
||||
else {
|
||||
$input.focus();
|
||||
if (o.watermark !== '' && $input.val() === o.watermark)
|
||||
$input.val('');
|
||||
else
|
||||
$input.select();
|
||||
if (timeout)
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(function() { flexbox(1, true, o.arrowQuery); }, o.queryDelay);
|
||||
}
|
||||
};
|
||||
var $arrow = $('<span></span>')
|
||||
.attr('id', $div.attr('id') + '_arrow')
|
||||
.addClass(o.arrowClass)
|
||||
.addClass('out')
|
||||
.hover(function() {
|
||||
$(this).removeClass('out').addClass('over');
|
||||
}, function() {
|
||||
$(this).removeClass('over').addClass('out');
|
||||
})
|
||||
.mousedown(function() {
|
||||
$(this).removeClass('over').addClass('active');
|
||||
})
|
||||
.mouseup(function() {
|
||||
$(this).removeClass('active').addClass('over');
|
||||
})
|
||||
.click(arrowClick)
|
||||
.appendTo($div);
|
||||
arrowWidth = $arrow.width();
|
||||
$input.css('width', (o.width - arrowWidth) + 'px');
|
||||
}
|
||||
if (!o.allowInput) { o.selectFirstMatch = false; $input.click(arrowClick); } // simulate <select> behavior
|
||||
|
||||
// Handle presence of CSS Universal Selector (*) that defines padding by verifying what the browser thinks the outerHeight is.
|
||||
// In FF, the outerHeight() will not pick up the correct input field padding
|
||||
var inputPad = $input.outerHeight() - $input.height() - 2;
|
||||
var inputWidth = $input.outerWidth() - 2;
|
||||
var top = $input.outerHeight();
|
||||
|
||||
if (inputPad === 0) {
|
||||
inputWidth += 4;
|
||||
top += 4;
|
||||
}
|
||||
else if (inputPad !== 4) {
|
||||
inputWidth += inputPad;
|
||||
top += inputPad;
|
||||
}
|
||||
|
||||
var $ctr = $('<div></div>')
|
||||
.attr('id', $div.attr('id') + '_ctr')
|
||||
.css('width', inputWidth + arrowWidth)
|
||||
.css('top', top)
|
||||
.css('left', 0)
|
||||
.addClass(o.containerClass)
|
||||
.appendTo($div)
|
||||
.mousedown(function(e) {
|
||||
$input.data('active', true);
|
||||
})
|
||||
.hide();
|
||||
|
||||
var $content = $('<div></div>')
|
||||
.addClass(o.contentClass)
|
||||
.appendTo($ctr)
|
||||
.scroll(function() {
|
||||
scrolling = true;
|
||||
});
|
||||
|
||||
var $paging = $('<div></div>').appendTo($ctr);
|
||||
$div.css('height', $input.outerHeight());
|
||||
|
||||
function processKeyDown(e) {
|
||||
// handle modifiers
|
||||
var mod = 0;
|
||||
if (typeof (e.ctrlKey) !== 'undefined') {
|
||||
if (e.ctrlKey) mod |= 1;
|
||||
if (e.shiftKey) mod |= 2;
|
||||
} else {
|
||||
if (e.modifiers & Event.CONTROL_MASK) mod |= 1;
|
||||
if (e.modifiers & Event.SHIFT_MASK) mod |= 2;
|
||||
}
|
||||
// if the keyCode is one of the modifiers, bail out (we'll catch it on the next keypress)
|
||||
if (/16$|17$/.test(e.keyCode)) return; // 16 = Shift, 17 = Ctrl
|
||||
|
||||
var tab = e.keyCode === 9, esc = e.keyCode === 27;
|
||||
var tabWithModifiers = e.keyCode === 9 && mod > 0;
|
||||
var backspace = e.keyCode === 8; // we will end up extending the delay time for backspaces...
|
||||
|
||||
// tab is a special case, since we want to bubble events...
|
||||
if (tab) if (getCurr()) selectCurr();
|
||||
|
||||
// handling up/down/escape/right arrow/left arrow requires results to be visible
|
||||
// handling enter requires that AND a result to be selected
|
||||
if ((/27$|38$|33$|34$/.test(e.keyCode) && $ctr.is(':visible')) ||
|
||||
(/13$|40$/.test(e.keyCode)) || !o.allowInput) {
|
||||
|
||||
if (e.preventDefault) e.preventDefault();
|
||||
if (e.stopPropagation) e.stopPropagation();
|
||||
|
||||
e.cancelBubble = true;
|
||||
e.returnValue = false;
|
||||
|
||||
switch (e.keyCode) {
|
||||
case 38: // up arrow
|
||||
prevResult();
|
||||
break;
|
||||
case 40: // down arrow
|
||||
if ($ctr.is(':visible')) nextResult();
|
||||
else flexboxDelay(true);
|
||||
break;
|
||||
case 13: // enter
|
||||
if (getCurr()) selectCurr();
|
||||
else flexboxDelay(true);
|
||||
break;
|
||||
case 27: // escape
|
||||
hideResults();
|
||||
break;
|
||||
case 34: // page down
|
||||
if (!retrievingRemoteData) {
|
||||
if (o.paging) $('#' + $div.attr('id') + 'n').click();
|
||||
else nextPage();
|
||||
}
|
||||
break;
|
||||
case 33: // page up
|
||||
if (!retrievingRemoteData) {
|
||||
if (o.paging) $('#' + $div.attr('id') + 'p').click();
|
||||
else prevPage();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (!o.allowInput) { return; }
|
||||
}
|
||||
} else if (!esc && !tab && !tabWithModifiers) { // skip esc and tab key and any modifiers
|
||||
flexboxDelay(false, backspace);
|
||||
}
|
||||
}
|
||||
|
||||
function flexboxDelay(simulateArrowClick, increaseDelay) {
|
||||
if (timeout) clearTimeout(timeout);
|
||||
var delay = increaseDelay ? o.queryDelay * 5 : o.queryDelay;
|
||||
timeout = setTimeout(function() { flexbox(1, simulateArrowClick, ''); }, delay);
|
||||
}
|
||||
|
||||
function flexbox(p, arrowOrPagingClicked, prevQuery) {
|
||||
if (arrowOrPagingClicked) prevQuery = '';
|
||||
var q = prevQuery && prevQuery.length > 0 ? prevQuery : $.trim($input.val());
|
||||
|
||||
if (q.length >= o.minChars || arrowOrPagingClicked) {
|
||||
// If we are getting data from the server, set the height of the content box so it doesn't shrink when navigating between pages, due to the $content.html('') below...
|
||||
if ($content.outerHeight() > 0)
|
||||
$content.css('height', $content.outerHeight());
|
||||
$content.html('').attr('scrollTop', 0);
|
||||
|
||||
var cached = checkCache(q, p);
|
||||
if (cached) {
|
||||
$content.css('height', 'auto');
|
||||
displayItems(cached.data, q);
|
||||
showPaging(p, cached.t);
|
||||
}
|
||||
else {
|
||||
var params = { q: q, p: p, s: pageSize, contentType: 'application/json; charset=utf-8' };
|
||||
var callback = function(data, overrideQuery) {
|
||||
if (overrideQuery === true) q = overrideQuery; // must compare to boolean because by default, the string value "success" is passed when the jQuery $.getJSON method's callback is called
|
||||
var totalResults = parseInt(data[o.totalProperty]);
|
||||
|
||||
// Handle client-side paging, if any paging configuration options were specified
|
||||
if (isNaN(totalResults) && o.paging) {
|
||||
if (o.maxCacheBytes <= 0) alert('The "maxCacheBytes" configuration option must be greater\nthan zero when implementing client-side paging.');
|
||||
totalResults = data[o.resultsProperty].length;
|
||||
|
||||
var pages = totalResults / pageSize;
|
||||
if (totalResults % pageSize > 0) pages = parseInt(++pages);
|
||||
|
||||
for (var i = 1; i <= pages; i++) {
|
||||
var pageData = {};
|
||||
pageData[o.totalProperty] = totalResults;
|
||||
pageData[o.resultsProperty] = data[o.resultsProperty].splice(0, pageSize);
|
||||
if (i === 1) totalSize = displayItems(pageData, q);
|
||||
updateCache(q, i, pageSize, totalResults, pageData, totalSize);
|
||||
}
|
||||
}
|
||||
else {
|
||||
var totalSize = displayItems(data, q);
|
||||
updateCache(q, p, pageSize, totalResults, data, totalSize);
|
||||
}
|
||||
showPaging(p, totalResults);
|
||||
$content.css('height', 'auto');
|
||||
retrievingRemoteData = false;
|
||||
};
|
||||
if (typeof (o.source) === 'object') {
|
||||
if (o.allowInput) callback(filter(o.source, params));
|
||||
else callback(o.source);
|
||||
}
|
||||
else {
|
||||
retrievingRemoteData = true;
|
||||
if (o.method.toUpperCase() == 'POST') $.post(o.source, params, callback, 'json');
|
||||
else $.getJSON(o.source, params, callback);
|
||||
}
|
||||
}
|
||||
} else
|
||||
hideResults();
|
||||
}
|
||||
|
||||
function filter(data, params) {
|
||||
var filtered = {};
|
||||
filtered[o.resultsProperty] = [];
|
||||
filtered[o.totalProperty] = 0;
|
||||
var index = 0;
|
||||
|
||||
for (var i=0; i < data[o.resultsProperty].length; i++) {
|
||||
var indexOfMatch = data[o.resultsProperty][i][o.displayValue].toLowerCase().indexOf(params.q.toLowerCase());
|
||||
if ((o.matchAny && indexOfMatch !== -1) || (!o.matchAny && indexOfMatch === 0)) {
|
||||
filtered[o.resultsProperty][index++] = data[o.resultsProperty][i];
|
||||
filtered[o.totalProperty] += 1;
|
||||
}
|
||||
}
|
||||
if (o.paging) {
|
||||
var start = (params.p - 1) * params.s;
|
||||
var howMany = (start + params.s) > filtered[o.totalProperty] ? filtered[o.totalProperty] - start : params.s;
|
||||
filtered[o.resultsProperty] = filtered[o.resultsProperty].splice(start, howMany);
|
||||
}
|
||||
return filtered;
|
||||
}
|
||||
|
||||
function showPaging(p, totalResults) {
|
||||
$paging.html('').removeClass(o.paging.cssClass); // clear out for threshold scenarios
|
||||
if (o.showResults && o.paging && totalResults > pageSize) {
|
||||
var pages = totalResults / pageSize;
|
||||
if (totalResults % pageSize > 0) pages = parseInt(++pages);
|
||||
outputPagingLinks(pages, p, totalResults);
|
||||
}
|
||||
}
|
||||
|
||||
function handleKeyPress(e, page, totalPages) {
|
||||
if (/^13$|^39$|^37$/.test(e.keyCode)) {
|
||||
if (e.preventDefault)
|
||||
e.preventDefault();
|
||||
if (e.stopPropagation)
|
||||
e.stopPropagation();
|
||||
|
||||
e.cancelBubble = true;
|
||||
e.returnValue = false;
|
||||
|
||||
switch (e.keyCode) {
|
||||
case 13: // Enter
|
||||
if (/^\d+$/.test(page) && page > 0 && page <= totalPages)
|
||||
flexbox(page, true);
|
||||
else
|
||||
alert('Please enter a page number between 1 and ' + totalPages);
|
||||
// TODO: make this alert a function call, and a customizable parameter
|
||||
break;
|
||||
case 39: // right arrow
|
||||
$('#' + $div.attr('id') + 'n').click();
|
||||
break;
|
||||
case 37: // left arrow
|
||||
$('#' + $div.attr('id') + 'p').click();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handlePagingClick(e) {
|
||||
flexbox(parseInt($(this).attr('page')), true, $input.attr('pq')); // pq == previous query
|
||||
return false;
|
||||
}
|
||||
|
||||
function outputPagingLinks(totalPages, currentPage, totalResults) {
|
||||
// TODO: make these configurable images
|
||||
var first = '<<',
|
||||
prev = '<',
|
||||
next = '>',
|
||||
last = '>>',
|
||||
more = '...';
|
||||
|
||||
$paging.addClass(o.paging.cssClass);
|
||||
|
||||
// set up our base page link element
|
||||
var $link = $('<a/>')
|
||||
.attr('href', '#')
|
||||
.addClass('page')
|
||||
.click(handlePagingClick),
|
||||
$span = $('<span></span>').addClass('page'),
|
||||
divId = $div.attr('id');
|
||||
|
||||
// show first page
|
||||
if (currentPage > 1) {
|
||||
$link.clone(true).attr('id', divId + 'f').attr('page', 1).html(first).appendTo($paging);
|
||||
$link.clone(true).attr('id', divId + 'p').attr('page', currentPage - 1).html(prev).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$span.clone(true).html(first).appendTo($paging);
|
||||
$span.clone(true).html(prev).appendTo($paging);
|
||||
}
|
||||
|
||||
if (o.paging.style === 'links') {
|
||||
var maxPageLinks = o.paging.maxPageLinks;
|
||||
// show page numbers
|
||||
if (totalPages <= maxPageLinks) {
|
||||
for (var i = 1; i <= totalPages; i++) {
|
||||
if (i === currentPage) {
|
||||
$span.clone(true).html(currentPage).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$link.clone(true).attr('page', i).html(i).appendTo($paging);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ((currentPage + parseInt(maxPageLinks / 2)) > totalPages) {
|
||||
startPage = totalPages - maxPageLinks + 1;
|
||||
}
|
||||
else {
|
||||
startPage = currentPage - parseInt(maxPageLinks / 2);
|
||||
}
|
||||
|
||||
if (startPage > 1) {
|
||||
$link.clone(true).attr('page', startPage - 1).html(more).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
startPage = 1;
|
||||
}
|
||||
|
||||
for (var i = startPage; i < startPage + maxPageLinks; i++) {
|
||||
if (i === currentPage) {
|
||||
$span.clone(true).html(i).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$link.clone(true).attr('page', i).html(i).appendTo($paging);
|
||||
}
|
||||
}
|
||||
|
||||
if (totalPages > (startPage + maxPageLinks)) {
|
||||
$link.clone(true).attr('page', i).html(more).appendTo($paging);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (o.paging.style === 'input') {
|
||||
var $pagingBox = $('<input/>')
|
||||
.addClass('box')
|
||||
.click(function(e) {
|
||||
this.select();
|
||||
})
|
||||
.keypress(function(e) {
|
||||
return handleKeyPress(e, this.value, totalPages);
|
||||
})
|
||||
.val(currentPage)
|
||||
.appendTo($paging);
|
||||
}
|
||||
|
||||
if (currentPage < totalPages) {
|
||||
$link.clone(true).attr('id', divId + 'n').attr('page', +currentPage + 1).html(next).appendTo($paging);
|
||||
$link.clone(true).attr('id', divId + 'l').attr('page', totalPages).html(last).appendTo($paging);
|
||||
}
|
||||
else {
|
||||
$span.clone(true).html(next).appendTo($paging);
|
||||
$span.clone(true).html(last).appendTo($paging);
|
||||
}
|
||||
var startingResult = (currentPage - 1) * pageSize + 1;
|
||||
var endingResult = (startingResult > (totalResults - pageSize)) ? totalResults : startingResult + pageSize - 1;
|
||||
|
||||
if (o.paging.showSummary) {
|
||||
var summaryData = {
|
||||
"start": startingResult,
|
||||
"end": endingResult,
|
||||
"total": totalResults,
|
||||
"page": currentPage,
|
||||
"pages": totalPages
|
||||
};
|
||||
var html = o.paging.summaryTemplate.applyTemplate(summaryData);
|
||||
$('<br/>').appendTo($paging);
|
||||
$('<span></span>')
|
||||
.addClass(o.paging.summaryClass)
|
||||
.html(html)
|
||||
.appendTo($paging);
|
||||
}
|
||||
}
|
||||
|
||||
function checkCache(q, p) {
|
||||
var key = q + delim + p; // use null character as delimiter
|
||||
if (cacheData[key]) {
|
||||
for (var i = 0; i < cache.length; i++) { // TODO: is it possible to not loop here?
|
||||
if (cache[i] === key) {
|
||||
// pull out the matching element (splice), and add it to the beginning of the array (unshift)
|
||||
cache.unshift(cache.splice(i, 1)[0]);
|
||||
return cacheData[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function updateCache(q, p, s, t, data, size) {
|
||||
if (o.maxCacheBytes > 0) {
|
||||
while (cache.length && (cacheSize + size > o.maxCacheBytes)) {
|
||||
var cached = cache.pop();
|
||||
cacheSize -= cached.size;
|
||||
}
|
||||
var key = q + delim + p; // use null character as delimiter
|
||||
cacheData[key] = {
|
||||
q: q,
|
||||
p: p,
|
||||
s: s,
|
||||
t: t,
|
||||
size: size,
|
||||
data: data
|
||||
}; // add the data to the cache at the hash key location
|
||||
cache.push(key); // add the key to the MRU list
|
||||
cacheSize += size;
|
||||
}
|
||||
}
|
||||
|
||||
function displayItems(d, q) {
|
||||
var totalSize = 0, itemCount = 0;
|
||||
|
||||
if (!d)
|
||||
return;
|
||||
|
||||
$hdn.val($input.val());
|
||||
if (parseInt(d[o.totalProperty]) === 0 && o.noResultsText && o.noResultsText.length > 0) {
|
||||
$content.addClass(o.noResultsClass).html(o.noResultsText);
|
||||
$ctr.show();
|
||||
return;
|
||||
} else $content.removeClass(o.noResultsClass);
|
||||
|
||||
for (var i = 0; i < d[o.resultsProperty].length; i++) {
|
||||
var data = d[o.resultsProperty][i],
|
||||
result = o.resultTemplate.applyTemplate(data),
|
||||
exactMatch = q === result,
|
||||
selectedMatch = false,
|
||||
hasHtmlTags = false,
|
||||
match = data[o.displayValue];
|
||||
|
||||
if (!exactMatch && o.highlightMatches && q !== '') {
|
||||
var pattern = q,
|
||||
highlightStart = match.toLowerCase().indexOf(q.toLowerCase()),
|
||||
replaceString = '<span class="' + o.matchClass + '">' + match.substr(highlightStart,q.length) + '</span>';
|
||||
if (result.match('<(.|\n)*?>')) { // see if the content contains html tags
|
||||
hasHtmlTags = true;
|
||||
pattern = '(>)([^<]*?)(' + q + ')((.|\n)*?)(<)'; // TODO: look for a better way
|
||||
replaceString = '$1$2<span class="' + o.matchClass + '">$3</span>$4$6';
|
||||
}
|
||||
result = result.replace(new RegExp(pattern.replace("[", "\\["), o.highlightMatchesRegExModifier), replaceString);
|
||||
}
|
||||
|
||||
// write the value of the first match to the input box, and select the remainder,
|
||||
// but only if autoCompleteFirstMatch is set, and there are no html tags in the response
|
||||
if (o.autoCompleteFirstMatch && !hasHtmlTags && i === 0) {
|
||||
if (q.length > 0 && match.toLowerCase().indexOf(q.toLowerCase()) === 0) {
|
||||
$input.attr('pq', q); // pq == previous query
|
||||
$hdn.val(data[o.hiddenValue]);
|
||||
$input.val(data[o.displayValue]);
|
||||
selectedMatch = selectRange(q.length, $input.val().length);
|
||||
}
|
||||
}
|
||||
|
||||
if (!o.showResults) return;
|
||||
|
||||
$row = $('<div></div>')
|
||||
.attr('id', data[o.hiddenValue])
|
||||
.attr('val', data[o.displayValue])
|
||||
.addClass('row')
|
||||
.html(result)
|
||||
.appendTo($content);
|
||||
|
||||
if (exactMatch || (++itemCount == 1 && o.selectFirstMatch) || selectedMatch) {
|
||||
$row.addClass(o.selectClass);
|
||||
}
|
||||
totalSize += result.length;
|
||||
}
|
||||
|
||||
if (totalSize === 0) {
|
||||
hideResults();
|
||||
return;
|
||||
}
|
||||
|
||||
$ctr.parent().css('z-index', 11000);
|
||||
$ctr.show();
|
||||
|
||||
$content
|
||||
.children('div')
|
||||
.mouseover(function() {
|
||||
$content.children('div').removeClass(o.selectClass);
|
||||
$(this).addClass(o.selectClass);
|
||||
})
|
||||
.mouseup(function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
selectCurr();
|
||||
});
|
||||
|
||||
if (o.maxVisibleRows > 0) {
|
||||
var maxHeight = $row.outerHeight() * o.maxVisibleRows;
|
||||
$content.css('max-height', maxHeight);
|
||||
}
|
||||
|
||||
return totalSize;
|
||||
}
|
||||
|
||||
function selectRange(s, l) {
|
||||
var tb = $input[0];
|
||||
if (tb.createTextRange) {
|
||||
var r = tb.createTextRange();
|
||||
r.moveStart('character', s);
|
||||
r.moveEnd('character', l - tb.value.length);
|
||||
r.select();
|
||||
} else if (tb.setSelectionRange) {
|
||||
tb.setSelectionRange(s, l);
|
||||
}
|
||||
tb.focus();
|
||||
return true;
|
||||
}
|
||||
|
||||
String.prototype.applyTemplate = function(d) {
|
||||
try {
|
||||
if (d === '') return this;
|
||||
return this.replace(/{([^{}]*)}/g,
|
||||
function(a, b) {
|
||||
var r;
|
||||
if (b.indexOf('.') !== -1) { // handle dot notation in {}, such as {Thumbnail.Url}
|
||||
var ary = b.split('.');
|
||||
var obj = d;
|
||||
for (var i = 0; i < ary.length; i++)
|
||||
obj = obj[ary[i]];
|
||||
r = obj;
|
||||
}
|
||||
else
|
||||
r = d[b];
|
||||
if (typeof r === 'string' || typeof r === 'number') return r; else throw (a);
|
||||
}
|
||||
);
|
||||
} catch (ex) {
|
||||
alert('Invalid JSON property ' + ex + ' found when trying to apply resultTemplate or paging.summaryTemplate.\nPlease check your spelling and try again.');
|
||||
}
|
||||
};
|
||||
|
||||
function hideResults() {
|
||||
$input.data('active', false); // for input blur
|
||||
$div.css('z-index', 0);
|
||||
$ctr.hide();
|
||||
}
|
||||
|
||||
function getCurr() {
|
||||
if (!$ctr.is(':visible'))
|
||||
return false;
|
||||
|
||||
var $curr = $content.children('div.' + o.selectClass);
|
||||
|
||||
if (!$curr.length)
|
||||
$curr = false;
|
||||
|
||||
return $curr;
|
||||
}
|
||||
|
||||
function selectCurr() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr) {
|
||||
$hdn.val($curr.attr('id'));
|
||||
$input.val($curr.attr('val')).focus();
|
||||
hideResults();
|
||||
|
||||
if (o.onSelect) {
|
||||
o.onSelect.apply($input[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function supportsGetBoxObjectFor() {
|
||||
try {
|
||||
document.getBoxObjectFor(document.body);
|
||||
return true;
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function supportsGetBoundingClientRect() {
|
||||
try {
|
||||
document.body.getBoundingClientRect();
|
||||
return true;
|
||||
}
|
||||
catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function nextPage() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.next().length > 0) {
|
||||
$curr.removeClass(o.selectClass);
|
||||
|
||||
for (var i = 0; i < o.maxVisibleRows; i++) {
|
||||
if ($curr.next().length > 0) {
|
||||
$curr = $curr.next();
|
||||
}
|
||||
}
|
||||
|
||||
$curr.addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop');
|
||||
$content.attr('scrollTop', scrollPos + $content.height());
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:first-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function prevPage() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.prev().length > 0) {
|
||||
$curr.removeClass(o.selectClass);
|
||||
|
||||
for (var i = 0; i < o.maxVisibleRows; i++) {
|
||||
if ($curr.prev().length > 0) {
|
||||
$curr = $curr.prev();
|
||||
}
|
||||
}
|
||||
|
||||
$curr.addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop');
|
||||
$content.attr('scrollTop', scrollPos - $content.height());
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:last-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function nextResult() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.next().length > 0) {
|
||||
$curr.removeClass(o.selectClass).next().addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop'),
|
||||
curr = $curr[0], parentBottom, bottom, height;
|
||||
if (supportsGetBoxObjectFor()) {
|
||||
parentBottom = document.getBoxObjectFor($content[0]).y + $content.attr('offsetHeight');
|
||||
bottom = document.getBoxObjectFor(curr).y + $curr.attr('offsetHeight');
|
||||
height = document.getBoxObjectFor(curr).height;
|
||||
}
|
||||
else if (supportsGetBoundingClientRect()) {
|
||||
parentBottom = $content[0].getBoundingClientRect().bottom;
|
||||
var rect = curr.getBoundingClientRect();
|
||||
bottom = rect.bottom;
|
||||
height = bottom - rect.top;
|
||||
}
|
||||
if (bottom >= parentBottom)
|
||||
$content.attr('scrollTop', scrollPos + height);
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:first-child').addClass(o.selectClass);
|
||||
}
|
||||
|
||||
function prevResult() {
|
||||
$curr = getCurr();
|
||||
|
||||
if ($curr && $curr.prev().length > 0) {
|
||||
$curr.removeClass(o.selectClass).prev().addClass(o.selectClass);
|
||||
var scrollPos = $content.attr('scrollTop'),
|
||||
curr = $curr[0],
|
||||
parent = $curr.parent()[0],
|
||||
parentTop, top, height;
|
||||
if (supportsGetBoxObjectFor()) {
|
||||
height = document.getBoxObjectFor(curr).height;
|
||||
parentTop = document.getBoxObjectFor($content[0]).y - (height * 2); // TODO: this is not working when i add another control...
|
||||
top = document.getBoxObjectFor(curr).y - document.getBoxObjectFor($content[0]).y;
|
||||
}
|
||||
else if (supportsGetBoundingClientRect()) {
|
||||
parentTop = parent.getBoundingClientRect().top;
|
||||
var rect = curr.getBoundingClientRect();
|
||||
top = rect.top;
|
||||
height = rect.bottom - top;
|
||||
}
|
||||
if (top <= parentTop)
|
||||
$content.attr('scrollTop', scrollPos - height);
|
||||
}
|
||||
else if (!$curr)
|
||||
$content.children('div:last-child').addClass(o.selectClass);
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.flexbox = function(source, options) {
|
||||
if (!source)
|
||||
return;
|
||||
|
||||
try {
|
||||
var defaults = $.fn.flexbox.defaults;
|
||||
var o = $.extend({}, defaults, options);
|
||||
|
||||
for (var prop in o) {
|
||||
if (defaults[prop] === undefined) throw ('Invalid option specified: ' + prop + '\nPlease check your spelling and try again.');
|
||||
}
|
||||
o.source = source;
|
||||
|
||||
if (options) {
|
||||
o.paging = (options.paging || options.paging == null) ? $.extend({}, defaults.paging, options.paging) : false;
|
||||
|
||||
for (var prop in o.paging) {
|
||||
if (defaults.paging[prop] === undefined) throw ('Invalid option specified: ' + prop + '\nPlease check your spelling and try again.');
|
||||
}
|
||||
|
||||
if (options.displayValue && !options.hiddenValue) {
|
||||
o.hiddenValue = options.displayValue;
|
||||
}
|
||||
}
|
||||
|
||||
this.each(function() {
|
||||
new $.flexbox(this, o);
|
||||
});
|
||||
|
||||
return this;
|
||||
} catch (ex) {
|
||||
if (typeof ex === 'object') alert(ex.message); else alert(ex);
|
||||
}
|
||||
};
|
||||
|
||||
// plugin defaults - added as a property on our plugin function so they can be set independently
|
||||
$.fn.flexbox.defaults = {
|
||||
method: 'GET', // One of 'GET' or 'POST'
|
||||
queryDelay: 100, // num of milliseconds before query is run.
|
||||
allowInput: true, // set to false to disallow the user from typing in queries
|
||||
containerClass: 'ffb',
|
||||
contentClass: 'content',
|
||||
selectClass: 'ffb-sel',
|
||||
inputClass: 'ffb-input',
|
||||
arrowClass: 'ffb-arrow',
|
||||
matchClass: 'ffb-match',
|
||||
noResultsText: 'No matching results', // text to show when no results match the query
|
||||
noResultsClass: 'ffb-no-results', // class to apply to noResultsText
|
||||
showResults: true, // whether to show results at all, or just typeahead
|
||||
selectFirstMatch: true, // whether to highlight the first matching value
|
||||
autoCompleteFirstMatch: false, // whether to complete the first matching value in the input box
|
||||
highlightMatches: true, // whether all matches within the string should be highlighted with matchClass
|
||||
highlightMatchesRegExModifier: 'i', // 'i' for case-insensitive, 'g' for global (all occurrences), or combine
|
||||
matchAny: true, // for client-side filtering ONLY, match any occurrence of the search term in the result (e.g. "ar" would find "area" and "cart")
|
||||
minChars: 1, // the minimum number of characters the user must enter before a search is executed
|
||||
showArrow: true, // set to false to simulate google suggest
|
||||
arrowQuery: '', // the query to run when the arrow is clicked
|
||||
onSelect: false, // function to run when a result is selected
|
||||
maxCacheBytes: 32768, // in bytes, 0 means caching is disabled
|
||||
resultTemplate: '{name}', // html template for each row (put json properties in curly braces)
|
||||
displayValue: 'name', // json element whose value is displayed on select
|
||||
hiddenValue: 'id', // json element whose value is submitted when form is submitted
|
||||
initialValue: '', // what should the value of the input field be when the form is loaded?
|
||||
initialId: '', // what should the value of the hidden field be when the form is loaded?
|
||||
watermark: '', // text that appears when flexbox is loaded, if no initialValue is specified. style with css class '.ffb-input.watermark'
|
||||
width: 200, // total width of flexbox. auto-adjusts based on showArrow value
|
||||
resultsProperty: 'results', // json property in response that references array of results
|
||||
totalProperty: 'total', // json property in response that references the total results (for paging)
|
||||
maxVisibleRows: 0, // default is 0, which means it is ignored. use either this, or paging.pageSize
|
||||
paging: {
|
||||
style: 'input', // or 'links'
|
||||
cssClass: 'paging', // prefix with containerClass (e.g. .ffb .paging)
|
||||
pageSize: 10, // acts as a threshold. if <= pageSize results, paging doesn't appear
|
||||
maxPageLinks: 5, // used only if style is 'links'
|
||||
showSummary: true, // whether to show 'displaying 1-10 of 200 results' text
|
||||
summaryClass: 'summary', // class for 'displaying 1-10 of 200 results', prefix with containerClass
|
||||
summaryTemplate: 'Displaying {start}-{end} of {total} results' // can use {page} and {pages} as well
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.setValue = function(val) {
|
||||
var id = '#' + this.attr('id');
|
||||
$(id + '_hidden,' + id + '_input').val(val).removeClass('watermark');
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,36 @@
|
||||
<%@ Page Language="VB" ValidateRequest="false" AutoEventWireup="false" CodeFile="AutoPostTest.aspx.vb" Inherits="PostTest" %>
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head id="Head1" runat="server">
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.js"></script>
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("textarea").htmlarea(); // Initialize jHtmlArea's with all default values
|
||||
|
||||
//window.setTimeout(function() { $("form").submit(); }, 3000);
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<form id="form1" runat="server">
|
||||
<div>
|
||||
<asp:ScriptManager runat="server" ID="sm1"></asp:ScriptManager>
|
||||
|
||||
<asp:Literal runat="server" ID="litText"></asp:Literal><br />
|
||||
|
||||
<textarea runat="server" id="txtText" cols="50" rows="15"></textarea>
|
||||
<input type="submit" value='manual submit' />
|
||||
<br />
|
||||
|
||||
<asp:Button runat="server" ID="btnSubmit" Text="asp:Button" />
|
||||
<asp:LinkButton runat="server" ID="lbSubmit" Text="asp:LinkButton"></asp:LinkButton>
|
||||
</div>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
Partial Class PostTest
|
||||
Inherits System.Web.UI.Page
|
||||
|
||||
Public Sub PostTest_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
|
||||
txtText.Value = Request("txtText")
|
||||
litText.Text = txtText.Value
|
||||
End Sub
|
||||
End Class
|
||||
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.min.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea.ColorPickerMenu-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.ColorPickerMenu.css" />
|
||||
|
||||
<style type="text/css">
|
||||
div.jHtmlArea { border: solid 1px #ccc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h3>jHtmlArea Live Demo - jHtmlAreaColorPickerMenu Example</h3>
|
||||
<p>The jHtmlAreaColorPickerMenu plugin/extension allows you to show a simple Color Picker Menu when the user clicks on the "forecolor" Toolbar Button.</p>
|
||||
|
||||
<p>
|
||||
<a href="http://jhtmlarea.codeplex.com">jHtmlArea Project Homepage</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/Release/ProjectReleases.aspx">Downloads</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/Thread/List.aspx">Discussions</a>
|
||||
|
|
||||
<a href="http://jhtmlarea.codeplex.com/WorkItem/List.aspx">Issue Tracker</a>
|
||||
</p>
|
||||
|
||||
<script type="text/javascript">
|
||||
//// You can also override the "default" colors option of the jHtmlAreaColorPickerMenu
|
||||
//// to show only the specific colors you want.
|
||||
// jHtmlAreaColorPickerMenu.defaultOptions.colors = ["red", "yellow", "blue", "green", "purple", "white", "black"];
|
||||
|
||||
// The followin creates a jHtmlArea and adds a custom list of toolbar buttons.
|
||||
// Among the buttons is the "forecolor" button that will automatically take
|
||||
// advantage of the jHtmlAreaColorPickerMenu plugin.
|
||||
$(function() {
|
||||
$("#Textarea1").htmlarea({
|
||||
toolbar: ["html", "|",
|
||||
"forecolor", // <-- Add the "forecolor" Toolbar Button
|
||||
"|", "bold", "italic", "underline", "|", "p", "h1", "h2", "h3", "|", "link", "unlink"] // Overrides/Specifies the Toolbar buttons to show
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<textarea id="Textarea1" cols="50" rows="15"><p><h3>Another TextArea</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
|
||||
|
||||
|
||||
<hr />
|
||||
|
||||
|
||||
|
||||
The jHtmlAreaColorPickerMenu object can also be reused for other purposes. For example clicking on the button below will allow you to change the background color of the page.
|
||||
<br />
|
||||
<input id="choosecolor" type="button" value="Choose Color..." />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#choosecolor").click(function() {
|
||||
jHtmlAreaColorPickerMenu(this, {
|
||||
colorChosen: function(color) {
|
||||
$(document.body).css('background-color', color);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<br /><br /><br /><br /><br />
|
||||
<hr />
|
||||
<div style="position: relative;border: solid 30px #cccccc;">
|
||||
<h3>Editor within a "position: relative" DIV element.</h3>
|
||||
<textarea id="txtInDiv" cols="50" rows="15">Some <b>Test</b> content.</textarea>
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#txtInDiv").htmlarea({
|
||||
toolbar: ["html", "|",
|
||||
"forecolor", // <-- Add the "forecolor" Toolbar Button
|
||||
"|", "bold", "italic", "underline", "|", "p", "h1", "h2", "h3", "|", "link", "unlink"] // Overrides/Specifies the Toolbar buttons to show
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title></title>
|
||||
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
|
||||
<script type="text/javascript" src="scripts/jquery-ui-1.7.2.custom.min.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jqueryui/ui-lightness/jquery-ui-1.7.2.custom.css" />
|
||||
|
||||
<script type="text/javascript" src="scripts/jHtmlArea-0.7.0.js"></script>
|
||||
<link rel="Stylesheet" type="text/css" href="style/jHtmlArea.css" />
|
||||
|
||||
<style type="text/css">
|
||||
/* body { background: #ccc;} */
|
||||
div.jHtmlArea .ToolBar ul li a.custom_disk_button
|
||||
{
|
||||
background: url(images/disk.png) no-repeat;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
div.jHtmlArea { border: solid 1px #ccc; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
// You can do this to perform a global override of any of the "default" options
|
||||
// jHtmlArea.fn.defaultOptions.css = "jHtmlArea.Editor.css";
|
||||
|
||||
$(function() {
|
||||
//$("textarea").htmlarea(); // Initialize all TextArea's as jHtmlArea's with default values
|
||||
|
||||
$("#txtDefaultHtmlArea").htmlarea(); // Initialize jHtmlArea's with all default values
|
||||
|
||||
$("#txtCustomHtmlArea").htmlarea({
|
||||
// Override/Specify the Toolbar buttons to show
|
||||
toolbar: [
|
||||
["bold", "italic", "underline", "|", "forecolor"],
|
||||
["p", "h1", "h2", "h3", "h4", "h5", "h6"],
|
||||
["link", "unlink", "|", "image"],
|
||||
[{
|
||||
// This is how to add a completely custom Toolbar Button
|
||||
css: "custom_disk_button",
|
||||
text: "Save",
|
||||
action: function(btn) {
|
||||
// 'this' = jHtmlArea object
|
||||
// 'btn' = jQuery object that represents the <A> "anchor" tag for the Toolbar Button
|
||||
alert('SAVE!\n\n' + this.toHtmlString());
|
||||
}
|
||||
}]
|
||||
],
|
||||
|
||||
// Override any of the toolbarText values - these are the Alt Text / Tooltips shown
|
||||
// when the user hovers the mouse over the Toolbar Buttons
|
||||
// Here are a couple translated to German, thanks to Google Translate.
|
||||
toolbarText: $.extend({}, jHtmlArea.defaultOptions.toolbarText, {
|
||||
"bold": "fett",
|
||||
"italic": "kursiv",
|
||||
"underline": "unterstreichen"
|
||||
}),
|
||||
|
||||
// Specify a specific CSS file to use for the Editor
|
||||
css: "style//jHtmlArea.Editor.css",
|
||||
|
||||
// Do something once the editor has finished loading
|
||||
loaded: function() {
|
||||
//// 'this' is equal to the jHtmlArea object
|
||||
//alert("jHtmlArea has loaded!");
|
||||
//this.showHTMLView(); // show the HTML view once the editor has finished loading
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<textarea id="txtDefaultHtmlArea" cols="50" rows="15"><p><h3>Test H3</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
<input type="button" value="Alert HTML" onclick="alert($('#txtDefaultHtmlArea').htmlarea('toHtmlString'));" />
|
||||
<input type="button" value="Change Color to Blue" onclick="$('#txtDefaultHtmlArea').htmlarea('forecolor', 'blue');" />
|
||||
|
||||
<br /><hr /><br />
|
||||
|
||||
|
||||
<textarea id="txtCustomHtmlArea" cols="50" rows="15"><p><h3>Another TextArea</h3>This is some sample text to test out the <b>WYSIWYG Control</b>.</p></textarea>
|
||||
|
||||
<input type="button" id="btnRemoveCustomHtmlArea" value="Remove jHtmlArea" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#btnRemoveCustomHtmlArea").click(function() {
|
||||
$("#txtCustomHtmlArea").htmlarea("dispose");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<input type="button" id="btnResetCustomHtmlArea" value="Reset To Default Options" />
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$("#btnResetCustomHtmlArea").click(function() {
|
||||
$("#txtCustomHtmlArea").htmlarea("dispose");
|
||||
$("#txtCustomHtmlArea").htmlarea();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<br /><hr /><br />
|
||||
|
||||
<h3>Use jHtmlArea within jQuery UI Dialog</h3>
|
||||
<script type="text/javascript">
|
||||
$.ui.dialog.defaults.bgiframe = true;
|
||||
$(function() {
|
||||
$("#dialogShowButton").click(function() {
|
||||
$("#dialog").dialog({width: 420});
|
||||
$("#dialogEditor").htmlarea();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<input type="button" id="dialogShowButton" value="Show Dialog with jHtmlArea Editor" />
|
||||
|
||||
<div id="dialog" title="Basic dialog" style="display: none">
|
||||
Basic jHtmlArea within jQuery UI Dialog
|
||||
<br />
|
||||
<textarea id="dialogEditor" rows="10" style="width: 400px">Some <b>Basic</b> text.</textarea>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>To see a "proper" example of the "Font Color" button, you'll want to see the "<a href="ColorPickerMenu.htm">jHtmlAreaColorPickerMenu</a>" in action here: <a href="ColorPickerMenu.htm">ColorPickerMenu.htm</a></p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,117 @@
|
||||
/* jHtmlArea - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
|
||||
EXAMPLE USAGE:
|
||||
-----------------------
|
||||
See "Default.htm" for example usages.
|
||||
Or, check out http://jhtmlarea.codeplex.com
|
||||
|
||||
|
||||
CHANGE LOG
|
||||
-----------------------
|
||||
v0.7.0
|
||||
- Fixed ColorPickerMenu positioning when placed within a "position: relative"
|
||||
div element.
|
||||
|
||||
- Fixed ColorPickerMenu to auto-hide after a short delay (1 second) once the
|
||||
user moves the mouse off the menu.
|
||||
|
||||
- Fixed Form Submit issue that caused the text to not be posted. Also fixed a
|
||||
related issue with ASP.NET Postbacks.
|
||||
|
||||
- Added jHtmlArea.p method and "paragraph" functionality + toolbar button
|
||||
This allows the user to change the formatting from <H1>, <H2>, etc. to <P>
|
||||
|
||||
- Added an "Automatic" color option to the ColorPickerMenu.
|
||||
|
||||
|
||||
v0.6.0
|
||||
- Hide All Toolbar buttons except the "html" button when entering
|
||||
HTML Source view (via clicking "html" button or executing
|
||||
jHtmlArea.showHTMLView). When toggling view back to the WYSIWYG editor
|
||||
all other buttons will then be shown again.
|
||||
|
||||
- Added jHtmlArea.dispose method - Allows you to remove the WYSIWYG
|
||||
editor, and go back to having a plain TextArea. Beware, there is a
|
||||
memory leak when using this method; it's not too bad, but you want
|
||||
to call this as few a number of times if you can. The memory leak
|
||||
is due to the way the browsers handle removing DOM Elements.
|
||||
|
||||
- Added Indent and Outdent functionality - This includes toolbar buttons
|
||||
and jHtmlArea.indent and jHtmlArea.outdent buttons.
|
||||
|
||||
- Added justifyLeft, justifyCenter, justifyRight functionality and toolbar
|
||||
buttons.
|
||||
|
||||
- Added insertHorizontalRule functionality and toolbar button. This adds a
|
||||
<hr> tag to the currently selected area.
|
||||
|
||||
- Added an "alias" method for jHtmlArea.execCommand named "ec" to help reduce the
|
||||
file size of the script.
|
||||
|
||||
- Added increaseFontSize and decreaseFontSize functionality and toolbar buttons.
|
||||
The increaseFontSize and decreaseFontSize doesn't currently work in Safari.
|
||||
|
||||
- Added forecolor functionality - Changes a font color for the selection or at the
|
||||
insertion point. Requires a color value string to be passed in as a value argument.
|
||||
|
||||
- Fixed bug in jHtmlArea.toString method
|
||||
|
||||
- Added jHtmlArea.queryCommandValue method and it's alias "jHtmlArea.qc"
|
||||
|
||||
- Added the jHtmlAreaColorPickerMenu plugin/extension that resides within the
|
||||
"jHtmlAreaColorPickerMenu.js" file. This file includes a somewhat generic color
|
||||
picker menu that can be used for any purpose, plus it includes the code to wire
|
||||
up and override the "stock" jHtmlColor.forecolor functionality and inject the new
|
||||
Color Picker Menu functionality in it's place when you click on the "forecolor"
|
||||
toolbar button.
|
||||
|
||||
- Changed the "execCommand" and "ec" second parameter to default to "false" if not
|
||||
specified, and third parameter to default to "null" if not specified. This helps to
|
||||
reduce the overall file size of the script.
|
||||
|
||||
- Added support for Toolbar Button Grouping, now with the additional buttons included
|
||||
in this release, or even when any custom buttons are used, they will be able to display
|
||||
nicely by "auto-wrapping" to the next line.
|
||||
|
||||
- Added a gradient background to the Toolbar Button Groups, with a slight reverse
|
||||
gradient on the Buttons when the mouse is hovered over.
|
||||
|
||||
|
||||
v0.5.0 - Initial Release
|
||||
|
||||
|
||||
|
||||
|
||||
ICONS / IMAGES:
|
||||
-----------------------
|
||||
|
||||
Some of the Icons within the jHtmlArea.png file are from the
|
||||
Silk icon set at www.famfamfam.com.
|
||||
They are licensed under the following license:
|
||||
|
||||
Silk icon set 1.3
|
||||
_________________________________________
|
||||
Mark James
|
||||
http://www.famfamfam.com/lab/icons/silk/
|
||||
_________________________________________
|
||||
|
||||
This work is licensed under a
|
||||
Creative Commons Attribution 2.5 License.
|
||||
[ http://creativecommons.org/licenses/by/2.5/ ]
|
||||
|
||||
This means you may use it for any purpose,
|
||||
and make any changes you like.
|
||||
All I ask is that you include a link back
|
||||
to this page in your credits.
|
||||
|
||||
Are you using this icon set? Send me an email
|
||||
(including a link or picture if available) to
|
||||
mjames@gmail.com
|
||||
|
||||
Any other questions about this icon set please
|
||||
contact mjames@gmail.com
|
||||
|
After Width: | Height: | Size: 620 B |
@@ -0,0 +1,365 @@
|
||||
/*
|
||||
* This file has been commented to support Visual Studio Intellisense.
|
||||
* You should not use this file at runtime inside the browser--it is only
|
||||
* intended to be used only for design-time IntelliSense. Please use the
|
||||
* standard jHtmlArea library for all production use.
|
||||
*/
|
||||
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(options) {
|
||||
/// <summary>
|
||||
/// 1: (options) - Convert all TextArea DOM Elements to be displayed as jHtmlArea WYSIWYG Editors.
|
||||
/// 2: (string, arguments) - This function accepts a string containing the method name that you want to execute against the jHtmlArea object.
|
||||
/// </summary>
|
||||
/// <param name="options" type="Object">
|
||||
/// 1: options - The custom options you want applied to the jHtmlArea's that are created.
|
||||
/// 2: string - The name of the jHtmlArea object method to be executed. The results of the method call are then returned instead of the jQuery object.
|
||||
/// </param>
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor. Required.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// The custom options you want applied to the jHtmlArea that is created. Optional.
|
||||
/// </param>
|
||||
/// <field name="defaultOptions" Type="Object">
|
||||
/// The Default Options that are used for configuring the jHtmlArea WYSIWYG Editor upon creation.
|
||||
/// </field>
|
||||
/// <returns type="jHtmlArea" />
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// Required. The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// Optional. The custom options you want applied to the jHtmlArea that is created.
|
||||
/// </param>
|
||||
/// <returns type="jHtmlArea" />
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range. An alias for the "execCommand" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
qc: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command. An alias for the "queryCommandValue" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML that is currently selected within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
getSelection: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Selection object that represents the currently selected region of the editor.
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
getRange: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Range object that represents the currently selected region of the editor. (This uses the "getSelection" method internally.)
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
html: function(v) {
|
||||
/// <summary>
|
||||
/// 1: () Returns the HTML text value contained within the editor. 2: (v) Sets the editors value to the HTML text passed in.
|
||||
/// </summary>
|
||||
/// <param name="v" type="String">
|
||||
/// The HTML text to set the editors value to.
|
||||
/// </param>
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
/// <summary>
|
||||
/// Pastes HTML text into the editor, replacing any currently selected text and HTML elements.
|
||||
/// </summary>
|
||||
/// <param name="html" type="String">
|
||||
/// The HTML text to paste/insert.
|
||||
/// </param>
|
||||
},
|
||||
cut: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard and then deletes it.
|
||||
/// </summary>
|
||||
},
|
||||
copy: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard.
|
||||
/// </summary>
|
||||
},
|
||||
paste: function() {
|
||||
/// <summary>
|
||||
/// Overwrites the contents of the clipboard on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
bold: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between bold and nonbold.
|
||||
/// </summary>
|
||||
},
|
||||
italic: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between italic and nonitalic.
|
||||
/// </summary>
|
||||
},
|
||||
underline: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between underlined and not underlined.
|
||||
/// </summary>
|
||||
},
|
||||
strikeThrough: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already striked, the strikethrough will be removed. Otherwise, all selected characters will have a line drawn through them.
|
||||
/// </summary>
|
||||
},
|
||||
image: function(url) {
|
||||
/// <summary>
|
||||
/// This command will insert an image (referenced by url) at the insertion point.
|
||||
/// If no URL is specified, a prompt will be displayed to the user.
|
||||
/// </summary>
|
||||
/// <param name="url" type="String">
|
||||
/// The URL to the Image to be inserted. If no URL is specified, a prompt will be shown.
|
||||
/// </param>
|
||||
},
|
||||
removeFormat: function() {
|
||||
/// <summary>
|
||||
/// Removes the formatting tags from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
link: function() {
|
||||
/// <summary>
|
||||
/// Inserts a hyperlink on the current selection, or displays a dialog box enabling the user to specify a URL to insert as a hyperlink on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
unlink: function() {
|
||||
/// <summary>
|
||||
/// Removes any hyperlink from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
orderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an ordered list.
|
||||
/// </summary>
|
||||
},
|
||||
unorderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an unordered list.
|
||||
/// </summary>
|
||||
},
|
||||
superscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already superscripted, the superscript will be removed. Otherwise, all selected characters will be drawn slightly higher than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
subscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already subscripted, the subscript will be removed. Otherwise, all selected characters will be drawn slightly lower than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
p: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <P>.
|
||||
/// </summary>
|
||||
},
|
||||
h1: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H1>.
|
||||
/// </summary>
|
||||
},
|
||||
h2: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H2>.
|
||||
/// </summary>
|
||||
},
|
||||
h3: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H3>.
|
||||
/// </summary>
|
||||
},
|
||||
h4: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H4>.
|
||||
/// </summary>
|
||||
},
|
||||
h5: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H5>.
|
||||
/// </summary>
|
||||
},
|
||||
h6: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H6>.
|
||||
/// </summary>
|
||||
},
|
||||
heading: function(h) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H?> tag.
|
||||
/// Example: Calling jHtmlArea.heading(2) will be the same as calling jHtmlArea.h2()
|
||||
/// </summary>
|
||||
/// <param name="h" type="Number">
|
||||
/// The Number of Header (<H?>) tag to format the current block with.
|
||||
/// For Example: Passing a 2 or "2" will cause the current block to be formatted with a <H2> tag.
|
||||
/// </param>
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
/// <summary>
|
||||
/// Indents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
outdent: function() {
|
||||
/// <summary>
|
||||
/// Outdents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
/// <summary>
|
||||
/// Inserts a horizontal rule at the insertion point (deletes selection).
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
/// <summary>
|
||||
/// Justifies the selection or insertion point to the left.
|
||||
/// </summary>
|
||||
},
|
||||
justifyCenter: function() {
|
||||
/// <summary>
|
||||
/// Centers the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
justifyRight: function() {
|
||||
/// <summary>
|
||||
/// Right-justifies the selection or the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Increases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Decreases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
/// <summary>
|
||||
/// Changes a font color for the selection or at the insertion point. Requires a color value string to be passed in as a value argument.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Shows the HTML/Source View (TextArea DOM Element) within the Editor and hides the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Hides the HTML/Source View (TextArea DOM Element) within the Editor and displays the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Toggles between HTML/Source View (TextArea DOM Element) and the WYSIWYG interface within the Editor.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML text contained within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
toString: function() {
|
||||
/// <summary>
|
||||
/// Return the Text contained within the editor, with all HTML tags removed.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the TextArea DOM Element to by sync'd with the contents of the HTML WYSIWYG Editor.
|
||||
/// </summary>
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the HTML WYSIWYG Editor to be sync'd with the contents of the TextArea DOM Element.
|
||||
/// </summary>
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,403 @@
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(opts) {
|
||||
if (opts && typeof (opts) === "string") {
|
||||
var args = [];
|
||||
for (var i = 1; i < arguments.length; i++) { args.push(arguments[i]); }
|
||||
var htmlarea = jHtmlArea(this[0]);
|
||||
var f = htmlarea[opts];
|
||||
if (f) { return f.apply(htmlarea, args); }
|
||||
}
|
||||
return this.each(function() { jHtmlArea(this, opts); });
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
if (elem.jquery) {
|
||||
return jHtmlArea(elem[0]);
|
||||
}
|
||||
if (elem.jhtmlareaObject) {
|
||||
return elem.jhtmlareaObject;
|
||||
} else {
|
||||
return new jHtmlArea.fn.init(elem, options);
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
if (elem.nodeName.toLowerCase() === "textarea") {
|
||||
var opts = $.extend({}, jHtmlArea.defaultOptions, options);
|
||||
elem.jhtmlareaObject = this;
|
||||
|
||||
var textarea = this.textarea = $(elem);
|
||||
var container = this.container = $("<div/>").addClass("jHtmlArea").width(textarea.width()).insertAfter(textarea);
|
||||
|
||||
var toolbar = this.toolbar = $("<div/>").addClass("ToolBar").appendTo(container);
|
||||
priv.initToolBar.call(this, opts);
|
||||
|
||||
var iframe = this.iframe = $("<iframe/>").height(textarea.height());
|
||||
iframe.width(textarea.width() - ($.browser.msie ? 0 : 4));
|
||||
var htmlarea = this.htmlarea = $("<div/>").append(iframe);
|
||||
|
||||
container.append(htmlarea).append(textarea.hide());
|
||||
|
||||
priv.initEditor.call(this, opts);
|
||||
priv.attachEditorEvents.call(this);
|
||||
|
||||
// Fix total height to match TextArea
|
||||
iframe.height(iframe.height() - toolbar.height());
|
||||
toolbar.width(textarea.width() - 2);
|
||||
|
||||
if (opts.loaded) { opts.loaded.call(this); }
|
||||
}
|
||||
},
|
||||
dispose: function() {
|
||||
this.textarea.show().insertAfter(this.container);
|
||||
this.container.remove();
|
||||
this.textarea[0].jhtmlareaObject = null;
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
this.editor.execCommand(a, b || false, c || null);
|
||||
this.updateTextArea();
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
this.execCommand(a, b, c);
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
return this.editor.queryCommandValue(a);
|
||||
},
|
||||
qc: function(a) {
|
||||
return this.queryCommandValue(a);
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
if ($.browser.msie) {
|
||||
return this.getRange().htmlText;
|
||||
} else {
|
||||
var elem = this.getRange().cloneContents();
|
||||
return $("<p/>").append($(elem)).html();
|
||||
}
|
||||
},
|
||||
getSelection: function() {
|
||||
if ($.browser.msie) {
|
||||
//return (this.editor.parentWindow.getSelection) ? this.editor.parentWindow.getSelection() : this.editor.selection;
|
||||
return this.editor.selection;
|
||||
} else {
|
||||
return this.iframe[0].contentDocument.defaultView.getSelection();
|
||||
}
|
||||
},
|
||||
getRange: function() {
|
||||
var s = this.getSelection();
|
||||
if (!s) { return null; }
|
||||
//return (s.rangeCount > 0) ? s.getRangeAt(0) : s.createRange();
|
||||
return (s.getRangeAt) ? s.getRangeAt(0) : s.createRange();
|
||||
},
|
||||
html: function(v) {
|
||||
if (v) {
|
||||
this.pastHTML(v);
|
||||
} else {
|
||||
return toHtmlString();
|
||||
}
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
this.iframe[0].contentWindow.focus();
|
||||
var r = this.getRange();
|
||||
if ($.browser.msie) {
|
||||
r.pasteHTML(html);
|
||||
} else if ($.browser.mozilla) {
|
||||
r.deleteContents();
|
||||
r.insertNode($((html.indexOf("<") != 0) ? $("<span/>").append(html) : html)[0]);
|
||||
} else { // Safari
|
||||
r.deleteContents();
|
||||
r.insertNode($(this.iframe[0].contentWindow.document.createElement("span")).append($((html.indexOf("<") != 0) ? "<span>" + html + "</span>" : html))[0]);
|
||||
}
|
||||
r.collapse(false);
|
||||
r.select();
|
||||
},
|
||||
cut: function() {
|
||||
this.ec("cut");
|
||||
},
|
||||
copy: function() {
|
||||
this.ec("copy");
|
||||
},
|
||||
paste: function() {
|
||||
this.ec("paste");
|
||||
},
|
||||
bold: function() { this.ec("bold"); },
|
||||
italic: function() { this.ec("italic"); },
|
||||
underline: function() { this.ec("underline"); },
|
||||
strikeThrough: function() { this.ec("strikethrough"); },
|
||||
image: function(url) {
|
||||
if ($.browser.msie && !url) {
|
||||
this.ec("insertImage", true);
|
||||
} else {
|
||||
this.ec("insertImage", false, (url || prompt("Image URL:", "http://")));
|
||||
}
|
||||
},
|
||||
removeFormat: function() {
|
||||
this.ec("removeFormat", false, []);
|
||||
this.unlink();
|
||||
},
|
||||
link: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("createLink", true);
|
||||
} else {
|
||||
this.ec("createLink", false, prompt("Link URL:", "http://"));
|
||||
}
|
||||
},
|
||||
unlink: function() { this.ec("unlink", false, []); },
|
||||
orderedList: function() { this.ec("insertorderedlist"); },
|
||||
unorderedList: function() { this.ec("insertunorderedlist"); },
|
||||
superscript: function() { this.ec("superscript"); },
|
||||
subscript: function() { this.ec("subscript"); },
|
||||
|
||||
p: function() {
|
||||
this.formatBlock("<p>");
|
||||
},
|
||||
h1: function() {
|
||||
this.heading(1);
|
||||
},
|
||||
h2: function() {
|
||||
this.heading(2);
|
||||
},
|
||||
h3: function() {
|
||||
this.heading(3);
|
||||
},
|
||||
h4: function() {
|
||||
this.heading(4);
|
||||
},
|
||||
h5: function() {
|
||||
this.heading(5);
|
||||
},
|
||||
h6: function() {
|
||||
this.heading(6);
|
||||
},
|
||||
heading: function(h) {
|
||||
this.formatBlock($.browser.msie ? "Heading " + h : "h" + h);
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
this.ec("indent");
|
||||
},
|
||||
outdent: function() {
|
||||
this.ec("outdent");
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
this.ec("insertHorizontalRule", false, "ht");
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
this.ec("justifyLeft");
|
||||
},
|
||||
justifyCenter: function() {
|
||||
this.ec("justifyCenter");
|
||||
},
|
||||
justifyRight: function() {
|
||||
this.ec("justifyRight");
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("fontSize", false, this.qc("fontSize") + 1);
|
||||
} else if ($.browser.safari) {
|
||||
this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "larger")[0]);
|
||||
} else {
|
||||
this.ec("increaseFontSize", false, "big");
|
||||
}
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
if ($.browser.msie) {
|
||||
this.ec("fontSize", false, this.qc("fontSize") - 1);
|
||||
} else if ($.browser.safari) {
|
||||
this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "smaller")[0]);
|
||||
} else {
|
||||
this.ec("decreaseFontSize", false, "small");
|
||||
}
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
this.ec("foreColor", false, c || prompt("Enter HTML Color:", "#"));
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
this.ec("formatblock", false, v || null);
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
this.updateTextArea();
|
||||
this.textarea.show();
|
||||
this.htmlarea.hide();
|
||||
$("ul li:not(li:has(a.html))", this.toolbar).hide();
|
||||
$("ul:not(:has(:visible))", this.toolbar).hide();
|
||||
$("ul li a.html", this.toolbar).addClass("highlighted");
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
this.updateHtmlArea();
|
||||
this.textarea.hide();
|
||||
this.htmlarea.show();
|
||||
$("ul", this.toolbar).show();
|
||||
$("ul li", this.toolbar).show().find("a.html").removeClass("highlighted");
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
(this.textarea.is(":hidden")) ? this.showHTMLView() : this.hideHTMLView();
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
return this.editor.body.innerHTML;
|
||||
},
|
||||
toString: function() {
|
||||
return this.editor.body.innerText;
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
this.textarea.val(this.toHtmlString());
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
this.editor.body.innerHTML = this.textarea.val();
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
|
||||
jHtmlArea.defaultOptions = {
|
||||
toolbar: [
|
||||
["html"], ["bold", "italic", "underline", "strikethrough", "|", "subscript", "superscript"],
|
||||
["increasefontsize", "decreasefontsize"],
|
||||
["orderedlist", "unorderedlist"],
|
||||
["indent", "outdent"],
|
||||
["justifyleft", "justifycenter", "justifyright"],
|
||||
["link", "unlink", "image", "horizontalrule"],
|
||||
["p", "h1", "h2", "h3", "h4", "h5", "h6"],
|
||||
["cut", "copy", "paste"]
|
||||
],
|
||||
css: null,
|
||||
toolbarText: {
|
||||
bold: "Bold", italic: "Italic", underline: "Underline", strikethrough: "Strike-Through",
|
||||
cut: "Cut", copy: "Copy", paste: "Paste",
|
||||
h1: "Heading 1", h2: "Heading 2", h3: "Heading 3", h4: "Heading 4", h5: "Heading 5", h6: "Heading 6", p: "Paragraph",
|
||||
indent: "Indent", outdent: "Outdent", horizontalrule: "Insert Horizontal Rule",
|
||||
justifyleft: "Left Justify", justifycenter: "Center Justify", justifyright: "Right Justify",
|
||||
increasefontsize: "Increase Font Size", decreasefontsize: "Decrease Font Size", forecolor: "Text Color",
|
||||
link: "Insert Link", unlink: "Remove Link", image: "Insert Image",
|
||||
orderedlist: "Insert Ordered List", unorderedlist: "Insert Unordered List",
|
||||
subscript: "Subscript", superscript: "Superscript",
|
||||
html: "Show/Hide HTML Source View"
|
||||
}
|
||||
};
|
||||
var priv = {
|
||||
toolbarButtons: {
|
||||
strikethrough: "strikeThrough", orderedlist: "orderedList", unorderedlist: "unorderedList",
|
||||
horizontalrule: "insertHorizontalRule",
|
||||
justifyleft: "justifyLeft", justifycenter: "justifyCenter", justifyright: "justifyRight",
|
||||
increasefontsize: "increaseFontSize", decreasefontsize: "decreaseFontSize",
|
||||
html: function(btn) {
|
||||
this.toggleHTMLView();
|
||||
}
|
||||
},
|
||||
initEditor: function(options) {
|
||||
var edit = this.editor = this.iframe[0].contentWindow.document;
|
||||
edit.designMode = 'on';
|
||||
edit.open();
|
||||
edit.write(this.textarea.val());
|
||||
edit.close();
|
||||
if (options.css) {
|
||||
var e = edit.createElement('link'); e.rel = 'stylesheet'; e.type = 'text/css'; e.href = options.css; edit.getElementsByTagName('head')[0].appendChild(e);
|
||||
}
|
||||
},
|
||||
initToolBar: function(options) {
|
||||
var that = this;
|
||||
|
||||
var menuItem = function(className, altText, action) {
|
||||
return $("<li/>").append($("<a href='javascript:void(0);'/>").addClass(className).attr("title", altText).click(function() { action.call(that, $(this)); }));
|
||||
};
|
||||
|
||||
function addButtons(arr) {
|
||||
var ul = $("<ul/>").appendTo(that.toolbar);
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var e = arr[i];
|
||||
if ((typeof (e)).toLowerCase() === "string") {
|
||||
if (e === "|") {
|
||||
ul.append($('<li class="separator"/>'));
|
||||
} else {
|
||||
var f = (function(e) {
|
||||
// If button name exists in priv.toolbarButtons then call the "method" defined there, otherwise call the method with the same name
|
||||
var m = priv.toolbarButtons[e] || e;
|
||||
if ((typeof (m)).toLowerCase() === "function") {
|
||||
return function(btn) { m.call(this, btn); };
|
||||
} else {
|
||||
return function() { this[m](); this.editor.body.focus(); };
|
||||
}
|
||||
})(e.toLowerCase());
|
||||
var t = options.toolbarText[e.toLowerCase()];
|
||||
ul.append(menuItem(e.toLowerCase(), t || e, f));
|
||||
}
|
||||
} else {
|
||||
ul.append(menuItem(e.css, e.text, e.action));
|
||||
}
|
||||
}
|
||||
};
|
||||
if (options.toolbar.length !== 0 && priv.isArray(options.toolbar[0])) {
|
||||
for (var i = 0; i < options.toolbar.length; i++) {
|
||||
addButtons(options.toolbar[i]);
|
||||
}
|
||||
} else {
|
||||
addButtons(options.toolbar);
|
||||
}
|
||||
},
|
||||
attachEditorEvents: function() {
|
||||
var t = this;
|
||||
|
||||
var fnHA = function() {
|
||||
t.updateHtmlArea();
|
||||
};
|
||||
|
||||
this.textarea.click(fnHA).
|
||||
keyup(fnHA).
|
||||
keydown(fnHA).
|
||||
mousedown(fnHA).
|
||||
blur(fnHA);
|
||||
|
||||
|
||||
|
||||
var fnTA = function() {
|
||||
t.updateTextArea();
|
||||
};
|
||||
|
||||
$(this.editor.body).click(fnTA).
|
||||
keyup(fnTA).
|
||||
keydown(fnTA).
|
||||
mousedown(fnTA).
|
||||
blur(fnTA);
|
||||
|
||||
$('form').submit(function() { t.toggleHTMLView(); t.toggleHTMLView(); });
|
||||
//$(this.textarea[0].form).submit(function() { //this.textarea.closest("form").submit(function() {
|
||||
|
||||
|
||||
// Fix for ASP.NET Postback Model
|
||||
if (window.__doPostBack) {
|
||||
var old__doPostBack = __doPostBack;
|
||||
window.__doPostBack = function() {
|
||||
if (t) {
|
||||
if (t.toggleHTMLView) {
|
||||
t.toggleHTMLView();
|
||||
t.toggleHTMLView();
|
||||
}
|
||||
}
|
||||
return old__doPostBack.apply(window, arguments);
|
||||
};
|
||||
}
|
||||
|
||||
},
|
||||
isArray: function(v) {
|
||||
return v && typeof v === 'object' && typeof v.length === 'number' && typeof v.splice === 'function' && !(v.propertyIsEnumerable('length'));
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,357 @@
|
||||
/*
|
||||
* This file has been commented to support Visual Studio Intellisense.
|
||||
* You should not use this file at runtime inside the browser--it is only
|
||||
* intended to be used only for design-time IntelliSense. Please use the
|
||||
* standard jHtmlArea library for all production use.
|
||||
*/
|
||||
|
||||
/*
|
||||
* jHtmlArea 0.7.0 - WYSIWYG Html Editor jQuery Plugin
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
$.fn.htmlarea = function(options) {
|
||||
/// <summary>
|
||||
/// 1: (options) - Convert all TextArea DOM Elements to be displayed as jHtmlArea WYSIWYG Editors.
|
||||
/// 2: (string, arguments) - This function accepts a string containing the method name that you want to execute against the jHtmlArea object.
|
||||
/// </summary>
|
||||
/// <param name="options" type="Object">
|
||||
/// 1: options - The custom options you want applied to the jHtmlArea's that are created.
|
||||
/// 2: string - The name of the jHtmlArea object method to be executed. The results of the method call are then returned instead of the jQuery object.
|
||||
/// </param>
|
||||
};
|
||||
var jHtmlArea = window.jHtmlArea = function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor. Required.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// The custom options you want applied to the jHtmlArea that is created. Optional.
|
||||
/// </param>
|
||||
/// <field name="defaultOptions" Type="Object">
|
||||
/// The Default Options that are used for configuring the jHtmlArea WYSIWYG Editor upon creation.
|
||||
/// </field>
|
||||
/// <returns type="jHtmlArea" />
|
||||
};
|
||||
jHtmlArea.fn = jHtmlArea.prototype = {
|
||||
|
||||
// The current version of jHtmlArea being used
|
||||
jhtmlarea: "0.7.0",
|
||||
|
||||
init: function(elem, options) {
|
||||
/// <summary>
|
||||
/// Converts the passed in TextArea DOM Element to a jHtmlArea WYSIWYG Editor.
|
||||
/// </summary>
|
||||
/// <param name="elem" type="TextArea DOM Element">
|
||||
/// Required. The TextArea DOM Element to be converted to a jHtmlArea WYSIWYG Editor.
|
||||
/// </param>
|
||||
/// <param name="options" type="Object">
|
||||
/// Optional. The custom options you want applied to the jHtmlArea that is created.
|
||||
/// </param>
|
||||
/// <returns type="jHtmlArea" />
|
||||
},
|
||||
execCommand: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
ec: function(a, b, c) {
|
||||
/// <summary>
|
||||
/// Executes a command on the current document, current selection, or the given range. An alias for the "execCommand" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script.
|
||||
/// </param>
|
||||
/// <param name="b" type="Boolean">
|
||||
/// Optional. Boolean that specifies one of the following values:
|
||||
/// "false" = Default. Do not display a user interface. Must be combined with vValue, if the command requires a value.
|
||||
/// "true" = Display a user interface if the command supports one.
|
||||
/// </param>
|
||||
/// <param name="c" type="Object">
|
||||
/// Optional. Variant that specifies the string, number, or other value to assign. Possible values depend on the command.
|
||||
/// </param>
|
||||
},
|
||||
queryCommandValue: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
qc: function(a) {
|
||||
/// <summary>
|
||||
/// Returns the current value of the document, range, or current selection for the given command. An alias for the "queryCommandValue" method.
|
||||
/// </summary>
|
||||
/// <param name="a" type="String">
|
||||
/// Required. String that specifies a command identifier.
|
||||
/// </param>
|
||||
/// <returns type="Variant" />
|
||||
},
|
||||
getSelectedHTML: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML that is currently selected within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
getSelection: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Selection object that represents the currently selected region of the editor.
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
getRange: function() {
|
||||
/// <summary>
|
||||
/// Returns the Browser Range object that represents the currently selected region of the editor. (This uses the "getSelection" method internally.)
|
||||
/// </summary>
|
||||
/// <returns type="Object" />
|
||||
},
|
||||
pasteHTML: function(html) {
|
||||
/// <summary>
|
||||
/// Pastes HTML text into the editor, replacing any currently selected text and HTML elements.
|
||||
/// </summary>
|
||||
/// <param name="html" type="String">
|
||||
/// The HTML text to paste/insert.
|
||||
/// </param>
|
||||
},
|
||||
cut: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard and then deletes it.
|
||||
/// </summary>
|
||||
},
|
||||
copy: function() {
|
||||
/// <summary>
|
||||
/// Copies the current selection to the clipboard.
|
||||
/// </summary>
|
||||
},
|
||||
paste: function() {
|
||||
/// <summary>
|
||||
/// Overwrites the contents of the clipboard on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
bold: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between bold and nonbold.
|
||||
/// </summary>
|
||||
},
|
||||
italic: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between italic and nonitalic.
|
||||
/// </summary>
|
||||
},
|
||||
underline: function() {
|
||||
/// <summary>
|
||||
/// Toggles the current selection between underlined and not underlined.
|
||||
/// </summary>
|
||||
},
|
||||
strikeThrough: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already striked, the strikethrough will be removed. Otherwise, all selected characters will have a line drawn through them.
|
||||
/// </summary>
|
||||
},
|
||||
image: function(url) {
|
||||
/// <summary>
|
||||
/// This command will insert an image (referenced by url) at the insertion point.
|
||||
/// If no URL is specified, a prompt will be displayed to the user.
|
||||
/// </summary>
|
||||
/// <param name="url" type="String">
|
||||
/// The URL to the Image to be inserted. If no URL is specified, a prompt will be shown.
|
||||
/// </param>
|
||||
},
|
||||
removeFormat: function() {
|
||||
/// <summary>
|
||||
/// Removes the formatting tags from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
link: function() {
|
||||
/// <summary>
|
||||
/// Inserts a hyperlink on the current selection, or displays a dialog box enabling the user to specify a URL to insert as a hyperlink on the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
unlink: function() {
|
||||
/// <summary>
|
||||
/// Removes any hyperlink from the current selection.
|
||||
/// </summary>
|
||||
},
|
||||
orderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an ordered list.
|
||||
/// </summary>
|
||||
},
|
||||
unorderedList: function() {
|
||||
/// <summary>
|
||||
/// Converts the text selection into an unordered list.
|
||||
/// </summary>
|
||||
},
|
||||
superscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already superscripted, the superscript will be removed. Otherwise, all selected characters will be drawn slightly higher than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
subscript: function() {
|
||||
/// <summary>
|
||||
/// If there is a selection and all of the characters are already subscripted, the subscript will be removed. Otherwise, all selected characters will be drawn slightly lower than normal text.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
p: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <P>.
|
||||
/// </summary>
|
||||
},
|
||||
h1: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H1>.
|
||||
/// </summary>
|
||||
},
|
||||
h2: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H2>.
|
||||
/// </summary>
|
||||
},
|
||||
h3: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H3>.
|
||||
/// </summary>
|
||||
},
|
||||
h4: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H4>.
|
||||
/// </summary>
|
||||
},
|
||||
h5: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H5>.
|
||||
/// </summary>
|
||||
},
|
||||
h6: function() {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H6>.
|
||||
/// </summary>
|
||||
},
|
||||
heading: function(h) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag to <H?> tag.
|
||||
/// Example: Calling jHtmlArea.heading(2) will be the same as calling jHtmlArea.h2()
|
||||
/// </summary>
|
||||
/// <param name="h" type="Number">
|
||||
/// The Number of Header (<H?>) tag to format the current block with.
|
||||
/// For Example: Passing a 2 or "2" will cause the current block to be formatted with a <H2> tag.
|
||||
/// </param>
|
||||
},
|
||||
|
||||
indent: function() {
|
||||
/// <summary>
|
||||
/// Indents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
outdent: function() {
|
||||
/// <summary>
|
||||
/// Outdents the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
insertHorizontalRule: function() {
|
||||
/// <summary>
|
||||
/// Inserts a horizontal rule at the insertion point (deletes selection).
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
justifyLeft: function() {
|
||||
/// <summary>
|
||||
/// Justifies the selection or insertion point to the left.
|
||||
/// </summary>
|
||||
},
|
||||
justifyCenter: function() {
|
||||
/// <summary>
|
||||
/// Centers the selection or insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
justifyRight: function() {
|
||||
/// <summary>
|
||||
/// Right-justifies the selection or the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
increaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Increases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
decreaseFontSize: function() {
|
||||
/// <summary>
|
||||
/// Decreases the Font Size around the selection or at the insertion point.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
forecolor: function(c) {
|
||||
/// <summary>
|
||||
/// Changes a font color for the selection or at the insertion point. Requires a color value string to be passed in as a value argument.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
formatBlock: function(v) {
|
||||
/// <summary>
|
||||
/// Sets the current block format tag.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
showHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Shows the HTML/Source View (TextArea DOM Element) within the Editor and hides the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
hideHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Hides the HTML/Source View (TextArea DOM Element) within the Editor and displays the WYSIWYG interface.
|
||||
/// </summary>
|
||||
},
|
||||
toggleHTMLView: function() {
|
||||
/// <summary>
|
||||
/// Toggles between HTML/Source View (TextArea DOM Element) and the WYSIWYG interface within the Editor.
|
||||
/// </summary>
|
||||
},
|
||||
|
||||
toHtmlString: function() {
|
||||
/// <summary>
|
||||
/// Returns the HTML text contained within the editor.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
toString: function() {
|
||||
/// <summary>
|
||||
/// Return the Text contained within the editor, with all HTML tags removed.
|
||||
/// </summary>
|
||||
/// <returns type="String" />
|
||||
},
|
||||
|
||||
updateTextArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the TextArea DOM Element to by sync'd with the contents of the HTML WYSIWYG Editor.
|
||||
/// </summary>
|
||||
},
|
||||
updateHtmlArea: function() {
|
||||
/// <summary>
|
||||
/// Forces the HTML WYSIWYG Editor to be sync'd with the contents of the TextArea DOM Element.
|
||||
/// </summary>
|
||||
}
|
||||
};
|
||||
jHtmlArea.fn.init.prototype = jHtmlArea.fn;
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,189 @@
|
||||
/*
|
||||
* jHtmlAreaColorPickerMenu 0.7.0 - A Color Picker Extension to jHtmlArea
|
||||
* Part of the jHtmlArea Project
|
||||
* Copyright (c) 2009 Chris Pietschmann
|
||||
* http://jhtmlarea.codeplex.com
|
||||
* Licensed under the Microsoft Reciprocal License (Ms-RL)
|
||||
* http://jhtmlarea.codeplex.com/license
|
||||
*/
|
||||
(function($) {
|
||||
if (jHtmlArea) {
|
||||
var oldForecolor = jHtmlArea.fn.forecolor;
|
||||
jHtmlArea.fn.forecolor = function(c) {
|
||||
if (c) {
|
||||
// If color is specified, then use the "default" method functionality
|
||||
oldForecolor.call(this, c);
|
||||
} else {
|
||||
// If no color is specified, then display color picker ui
|
||||
var that = this;
|
||||
var rng = this.getRange();
|
||||
jHtmlAreaColorPickerMenu($(".forecolor", this.toolbar), {
|
||||
colorChosen: function(color) {
|
||||
if ($.browser.msie) {
|
||||
rng.execCommand("ForeColor", false, color);
|
||||
} else {
|
||||
that.forecolor(color);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
var menu = window.jHtmlAreaColorPickerMenu = function(ownerElement, options) {
|
||||
return new jHtmlAreaColorPickerMenu.fn.init(ownerElement, options);
|
||||
};
|
||||
menu.fn = menu.prototype = {
|
||||
jhtmlareacolorpickermenu: "0.7.0",
|
||||
|
||||
init: function(ownerElement, options) {
|
||||
var opts = $.extend({}, menu.defaultOptions, options);
|
||||
var that = this;
|
||||
var owner = this.owner = $(ownerElement);
|
||||
var position = owner.position();
|
||||
|
||||
if (menu.instance) {
|
||||
menu.instance.hide();
|
||||
}
|
||||
jHtmlAreaColorPickerMenu.instance = this;
|
||||
|
||||
var picker = this.picker = $("<div/>").css({
|
||||
position: "absolute",
|
||||
left: position.left + opts.offsetLeft,
|
||||
top: position.top + owner.height() + opts.offsetTop,
|
||||
"z-index": opts["z-index"]
|
||||
}).addClass("jHtmlAreaColorPickerMenu");
|
||||
|
||||
for (var i = 0; i < opts.colors.length; i++) {
|
||||
var c = opts.colors[i];
|
||||
$("<div/>").css("background-color", c).appendTo(picker).click(
|
||||
(function(color) {
|
||||
return function() {
|
||||
if (opts.colorChosen) {
|
||||
opts.colorChosen.call(this, color);
|
||||
}
|
||||
that.hide();
|
||||
};
|
||||
})(c)
|
||||
);
|
||||
}
|
||||
|
||||
$("<div/>").html("<div></div>Automatic").addClass("automatic").appendTo(picker).click(
|
||||
function() {
|
||||
if (opts.colorChosen) {
|
||||
opts.colorChosen.call(this, null);
|
||||
}
|
||||
that.hide();
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
var autoHide = false;
|
||||
picker.appendTo(owner.parent()).
|
||||
show().
|
||||
mouseout(function() {
|
||||
autoHide = true;
|
||||
that.currentTimeout = window.setTimeout(function() { if (autoHide === true) { that.hide(); } }, 1000);
|
||||
}).
|
||||
mouseover(function() {
|
||||
if (that.currentTimeout) {
|
||||
window.clearTimeout(that.currentTimeout);
|
||||
that.currentTimeout = null;
|
||||
}
|
||||
autoHide = false;
|
||||
});
|
||||
},
|
||||
hide: function() {
|
||||
this.picker.hide();
|
||||
this.picker.remove();
|
||||
}
|
||||
};
|
||||
menu.fn.init.prototype = menu.fn;
|
||||
|
||||
menu.defaultOptions = {
|
||||
"z-index": 0,
|
||||
offsetTop: 0,
|
||||
offsetLeft: 0,
|
||||
colors: [
|
||||
"#ffffff",
|
||||
"#cccccc",
|
||||
"#c0c0c0",
|
||||
"#999999",
|
||||
"#666666",
|
||||
"#333333",
|
||||
"#000000",
|
||||
|
||||
"#ffcccc",
|
||||
"#ff6666",
|
||||
"#ff0000",
|
||||
"#cc0000",
|
||||
"#990000",
|
||||
"#660000",
|
||||
"#330000",
|
||||
|
||||
"#ffcc99",
|
||||
"#ff9966",
|
||||
"#ff9900",
|
||||
"#ff6600",
|
||||
"#cc6600",
|
||||
"#993300",
|
||||
"#663300",
|
||||
|
||||
"#ffff99",
|
||||
"#ffff66",
|
||||
"#ffcc66",
|
||||
"#ffcc33",
|
||||
"#cc9933",
|
||||
"#996633",
|
||||
"#663333",
|
||||
|
||||
"#ffffcc",
|
||||
"#ffff33",
|
||||
"#ffff00",
|
||||
"#ffcc00",
|
||||
"#999900",
|
||||
"#666600",
|
||||
"#333300",
|
||||
|
||||
"#99ff99",
|
||||
"#66ff99",
|
||||
"#33ff33",
|
||||
"#33cc00",
|
||||
"#009900",
|
||||
"#006600",
|
||||
"#003300",
|
||||
|
||||
"#99FFFF",
|
||||
"#33FFFF",
|
||||
"#66CCCC",
|
||||
"#00CCCC",
|
||||
"#339999",
|
||||
"#336666",
|
||||
"#003333",
|
||||
|
||||
"#CCFFFF",
|
||||
"#66FFFF",
|
||||
"#33CCFF",
|
||||
"#3366FF",
|
||||
"#3333FF",
|
||||
"#000099",
|
||||
"#000066",
|
||||
|
||||
"#CCCCFF",
|
||||
"#9999FF",
|
||||
"#6666CC",
|
||||
"#6633FF",
|
||||
"#6600CC",
|
||||
"#333399",
|
||||
"#330099",
|
||||
|
||||
"#FFCCFF",
|
||||
"#FF99FF",
|
||||
"#CC66CC",
|
||||
"#CC33CC",
|
||||
"#993399",
|
||||
"#663366",
|
||||
"#330033"
|
||||
],
|
||||
colorChosen: null
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,8 @@
|
||||
// jHtmlArea - http://jhtmlarea.codeplex.com - (c)2009 Chris Pietschmann
|
||||
(function($){if(jHtmlArea){var oldForecolor=jHtmlArea.fn.forecolor;jHtmlArea.fn.forecolor=function(c){if(c){oldForecolor.call(this,c);}else{var that=this;var rng=this.getRange();jHtmlAreaColorPickerMenu($(".forecolor",this.toolbar),{colorChosen:function(color){if($.browser.msie){rng.execCommand("ForeColor",false,color);}else{that.forecolor(color);}}});}};}
|
||||
var menu=window.jHtmlAreaColorPickerMenu=function(ownerElement,options){return new jHtmlAreaColorPickerMenu.fn.init(ownerElement,options);};menu.fn=menu.prototype={jhtmlareacolorpickermenu:"0.7.0",init:function(ownerElement,options){var opts=$.extend({},menu.defaultOptions,options);var that=this;var owner=this.owner=$(ownerElement);var position=owner.position();if(menu.instance){menu.instance.hide();}
|
||||
jHtmlAreaColorPickerMenu.instance=this;var picker=this.picker=$("<div/>").css({position:"absolute",left:position.left+opts.offsetLeft,top:position.top+owner.height()+opts.offsetTop,"z-index":opts["z-index"]}).addClass("jHtmlAreaColorPickerMenu");for(var i=0;i<opts.colors.length;i++){var c=opts.colors[i];$("<div/>").css("background-color",c).appendTo(picker).click((function(color){return function(){if(opts.colorChosen){opts.colorChosen.call(this,color);}
|
||||
that.hide();};})(c));}
|
||||
$("<div/>").html("<div></div>Automatic").addClass("automatic").appendTo(picker).click(function(){if(opts.colorChosen){opts.colorChosen.call(this,null);}
|
||||
that.hide();});var autoHide=false;picker.appendTo(owner.parent()).show().mouseout(function(){autoHide=true;that.currentTimeout=window.setTimeout(function(){if(autoHide===true){that.hide();}},1000);}).mouseover(function(){if(that.currentTimeout){window.clearTimeout(that.currentTimeout);that.currentTimeout=null;}
|
||||
autoHide=false;});},hide:function(){this.picker.hide();this.picker.remove();}};menu.fn.init.prototype=menu.fn;menu.defaultOptions={"z-index":0,offsetTop:0,offsetLeft:0,colors:["#ffffff","#cccccc","#c0c0c0","#999999","#666666","#333333","#000000","#ffcccc","#ff6666","#ff0000","#cc0000","#990000","#660000","#330000","#ffcc99","#ff9966","#ff9900","#ff6600","#cc6600","#993300","#663300","#ffff99","#ffff66","#ffcc66","#ffcc33","#cc9933","#996633","#663333","#ffffcc","#ffff33","#ffff00","#ffcc00","#999900","#666600","#333300","#99ff99","#66ff99","#33ff33","#33cc00","#009900","#006600","#003300","#99FFFF","#33FFFF","#66CCCC","#00CCCC","#339999","#336666","#003333","#CCFFFF","#66FFFF","#33CCFF","#3366FF","#3333FF","#000099","#000066","#CCCCFF","#9999FF","#6666CC","#6633FF","#6600CC","#333399","#330099","#FFCCFF","#FF99FF","#CC66CC","#CC33CC","#993399","#663366","#330033"],colorChosen:null};})(jQuery);
|
||||
@@ -0,0 +1,6 @@
|
||||
div.jHtmlAreaColorPickerMenu {border: solid 1px #bbb; background-color: #ddd; width: 112px;}
|
||||
div.jHtmlAreaColorPickerMenu div {float: left; margin: 2px; width: 12px; height: 14px;}
|
||||
div.jHtmlAreaColorPickerMenu div:hover {margin: 0px; border: dotted 2px black;}
|
||||
|
||||
div.jHtmlAreaColorPickerMenu div.automatic { width: 104px; height: auto; padding: 2px;}
|
||||
div.jHtmlAreaColorPickerMenu div.automatic div { margin: 2px; width: 12px; height: 14px; border: solid 1px black;}
|
||||
@@ -0,0 +1,6 @@
|
||||
body
|
||||
{
|
||||
background: #000;
|
||||
color: #fff;
|
||||
margin: 2px;
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
div.jHtmlArea { display: inline block; }
|
||||
div.jHtmlArea div { padding: 0px; margin: 0px; }
|
||||
div.jHtmlArea .ToolBar { }
|
||||
div.jHtmlArea .ToolBar ul { border: solid 1px #ccc; margin: 1px; padding: 1px; float: left; background: #fff url(jHtmlArea_Toolbar_Group_BG.png) repeat-x;}
|
||||
div.jHtmlArea .ToolBar ul li { list-style-type: none; float: left; border: none; padding: 1px; margin: 1px; }
|
||||
div.jHtmlArea .ToolBar ul li:hover { border: solid 1px #ccc; background: #ddd url(jHtmlArea_Toolbar_Group__Btn_Select_BG.png); padding: 0; }
|
||||
div.jHtmlArea .ToolBar ul li a { display: block; width: 16px; height: 16px; background: url(jHtmlArea.png) no-repeat -16px -500px; border: none; cursor: pointer; padding: 0px; }
|
||||
div.jHtmlArea .ToolBar ul li a.highlighted { border: solid 1px #aaa; background-color: #bbb; padding: 0; }
|
||||
div.jHtmlArea .ToolBar ul li.separator {height: 16px; margin: 0 2px 0 3px; border-left: 1px solid #ccc;}
|
||||
div.jHtmlArea .ToolBar ul li.separator:hover { padding: 1px; background-color: #fff; border-top:none; border-bottom:none; border-right:none;}
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a:hover { }
|
||||
div.jHtmlArea .ToolBar ul li a.bold { background-position: 0 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.italic { background-position: -16px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.underline { background-position: -32px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.strikethrough { background-position: -48px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.link { background-position: -64px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.unlink { background-position: -80px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.orderedlist { background-position: -96px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.unorderedlist { background-position: -112px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.image { background-position: -128px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.cut { background-position: -144px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.copy { background-position: -160px 0; }
|
||||
div.jHtmlArea .ToolBar ul li a.paste { background-position: -176px 0; }
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.html { background-position: -192px 0; opacity:0.6; filter:alpha(opacity=60);}
|
||||
div.jHtmlArea .ToolBar ul li a.html.highlighted { opacity:1.0; filter:alpha(opacity=100);}
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.h1 { background-position: 0 -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h2 { background-position: -16px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h3 { background-position: -32px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h4 { background-position: -48px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h5 { background-position: -64px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.h6 { background-position: -80px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.subscript { background-position: -96px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.superscript { background-position: -112px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.indent { background-position: -128px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.outdent { background-position: -144px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.horizontalrule { background-position: -160px -16px;}
|
||||
div.jHtmlArea .ToolBar ul li a.p { background-position: -176px -16px;}
|
||||
|
||||
|
||||
div.jHtmlArea .ToolBar ul li a.justifyleft { background-position: 0 -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.justifycenter { background-position: -16px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.justifyright { background-position: -32px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.increasefontsize { background-position: -48px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.decreasefontsize { background-position: -64px -32px;}
|
||||
div.jHtmlArea .ToolBar ul li a.forecolor { background-position: -80px -32px;}
|
||||
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 964 B |
|
After Width: | Height: | Size: 942 B |
|
After Width: | Height: | Size: 260 B |
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 178 B |
|
After Width: | Height: | Size: 104 B |
|
After Width: | Height: | Size: 125 B |
|
After Width: | Height: | Size: 105 B |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 90 B |
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
@@ -0,0 +1,406 @@
|
||||
/*
|
||||
* jQuery UI CSS Framework
|
||||
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
||||
*/
|
||||
|
||||
/* Layout helpers
|
||||
----------------------------------*/
|
||||
.ui-helper-hidden { display: none; }
|
||||
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
|
||||
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
|
||||
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
|
||||
.ui-helper-clearfix { display: inline-block; }
|
||||
/* required comment for clearfix to work in Opera \*/
|
||||
* html .ui-helper-clearfix { height:1%; }
|
||||
.ui-helper-clearfix { display:block; }
|
||||
/* end clearfix */
|
||||
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
|
||||
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-disabled { cursor: default !important; }
|
||||
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* jQuery UI CSS Framework
|
||||
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
|
||||
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
|
||||
*/
|
||||
|
||||
|
||||
/* Component containers
|
||||
----------------------------------*/
|
||||
.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
|
||||
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
|
||||
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
|
||||
.ui-widget-content a { color: #333333; }
|
||||
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
|
||||
.ui-widget-header a { color: #ffffff; }
|
||||
|
||||
/* Interaction states
|
||||
----------------------------------*/
|
||||
.ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; outline: none; }
|
||||
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; outline: none; }
|
||||
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; outline: none; }
|
||||
.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; outline: none; }
|
||||
.ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; outline: none; }
|
||||
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; outline: none; text-decoration: none; }
|
||||
|
||||
/* Interaction Cues
|
||||
----------------------------------*/
|
||||
.ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
|
||||
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
|
||||
.ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
|
||||
.ui-state-error a, .ui-widget-content .ui-state-error a { color: #ffffff; }
|
||||
.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #ffffff; }
|
||||
.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
|
||||
.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
|
||||
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
|
||||
|
||||
/* Icons
|
||||
----------------------------------*/
|
||||
|
||||
/* states and images */
|
||||
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
|
||||
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
|
||||
.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
|
||||
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
|
||||
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
|
||||
|
||||
/* positioning */
|
||||
.ui-icon-carat-1-n { background-position: 0 0; }
|
||||
.ui-icon-carat-1-ne { background-position: -16px 0; }
|
||||
.ui-icon-carat-1-e { background-position: -32px 0; }
|
||||
.ui-icon-carat-1-se { background-position: -48px 0; }
|
||||
.ui-icon-carat-1-s { background-position: -64px 0; }
|
||||
.ui-icon-carat-1-sw { background-position: -80px 0; }
|
||||
.ui-icon-carat-1-w { background-position: -96px 0; }
|
||||
.ui-icon-carat-1-nw { background-position: -112px 0; }
|
||||
.ui-icon-carat-2-n-s { background-position: -128px 0; }
|
||||
.ui-icon-carat-2-e-w { background-position: -144px 0; }
|
||||
.ui-icon-triangle-1-n { background-position: 0 -16px; }
|
||||
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
|
||||
.ui-icon-triangle-1-e { background-position: -32px -16px; }
|
||||
.ui-icon-triangle-1-se { background-position: -48px -16px; }
|
||||
.ui-icon-triangle-1-s { background-position: -64px -16px; }
|
||||
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
|
||||
.ui-icon-triangle-1-w { background-position: -96px -16px; }
|
||||
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
|
||||
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
|
||||
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
|
||||
.ui-icon-arrow-1-n { background-position: 0 -32px; }
|
||||
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
|
||||
.ui-icon-arrow-1-e { background-position: -32px -32px; }
|
||||
.ui-icon-arrow-1-se { background-position: -48px -32px; }
|
||||
.ui-icon-arrow-1-s { background-position: -64px -32px; }
|
||||
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
|
||||
.ui-icon-arrow-1-w { background-position: -96px -32px; }
|
||||
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
|
||||
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
|
||||
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
|
||||
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
|
||||
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
|
||||
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
|
||||
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
|
||||
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
|
||||
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
|
||||
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
|
||||
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
|
||||
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
|
||||
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
|
||||
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
|
||||
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
|
||||
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
|
||||
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
|
||||
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
|
||||
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
|
||||
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
|
||||
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
|
||||
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
|
||||
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
|
||||
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
|
||||
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
|
||||
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
|
||||
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
|
||||
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
|
||||
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
|
||||
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
|
||||
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
|
||||
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
|
||||
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
|
||||
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
|
||||
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
|
||||
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
|
||||
.ui-icon-arrow-4 { background-position: 0 -80px; }
|
||||
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
|
||||
.ui-icon-extlink { background-position: -32px -80px; }
|
||||
.ui-icon-newwin { background-position: -48px -80px; }
|
||||
.ui-icon-refresh { background-position: -64px -80px; }
|
||||
.ui-icon-shuffle { background-position: -80px -80px; }
|
||||
.ui-icon-transfer-e-w { background-position: -96px -80px; }
|
||||
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
|
||||
.ui-icon-folder-collapsed { background-position: 0 -96px; }
|
||||
.ui-icon-folder-open { background-position: -16px -96px; }
|
||||
.ui-icon-document { background-position: -32px -96px; }
|
||||
.ui-icon-document-b { background-position: -48px -96px; }
|
||||
.ui-icon-note { background-position: -64px -96px; }
|
||||
.ui-icon-mail-closed { background-position: -80px -96px; }
|
||||
.ui-icon-mail-open { background-position: -96px -96px; }
|
||||
.ui-icon-suitcase { background-position: -112px -96px; }
|
||||
.ui-icon-comment { background-position: -128px -96px; }
|
||||
.ui-icon-person { background-position: -144px -96px; }
|
||||
.ui-icon-print { background-position: -160px -96px; }
|
||||
.ui-icon-trash { background-position: -176px -96px; }
|
||||
.ui-icon-locked { background-position: -192px -96px; }
|
||||
.ui-icon-unlocked { background-position: -208px -96px; }
|
||||
.ui-icon-bookmark { background-position: -224px -96px; }
|
||||
.ui-icon-tag { background-position: -240px -96px; }
|
||||
.ui-icon-home { background-position: 0 -112px; }
|
||||
.ui-icon-flag { background-position: -16px -112px; }
|
||||
.ui-icon-calendar { background-position: -32px -112px; }
|
||||
.ui-icon-cart { background-position: -48px -112px; }
|
||||
.ui-icon-pencil { background-position: -64px -112px; }
|
||||
.ui-icon-clock { background-position: -80px -112px; }
|
||||
.ui-icon-disk { background-position: -96px -112px; }
|
||||
.ui-icon-calculator { background-position: -112px -112px; }
|
||||
.ui-icon-zoomin { background-position: -128px -112px; }
|
||||
.ui-icon-zoomout { background-position: -144px -112px; }
|
||||
.ui-icon-search { background-position: -160px -112px; }
|
||||
.ui-icon-wrench { background-position: -176px -112px; }
|
||||
.ui-icon-gear { background-position: -192px -112px; }
|
||||
.ui-icon-heart { background-position: -208px -112px; }
|
||||
.ui-icon-star { background-position: -224px -112px; }
|
||||
.ui-icon-link { background-position: -240px -112px; }
|
||||
.ui-icon-cancel { background-position: 0 -128px; }
|
||||
.ui-icon-plus { background-position: -16px -128px; }
|
||||
.ui-icon-plusthick { background-position: -32px -128px; }
|
||||
.ui-icon-minus { background-position: -48px -128px; }
|
||||
.ui-icon-minusthick { background-position: -64px -128px; }
|
||||
.ui-icon-close { background-position: -80px -128px; }
|
||||
.ui-icon-closethick { background-position: -96px -128px; }
|
||||
.ui-icon-key { background-position: -112px -128px; }
|
||||
.ui-icon-lightbulb { background-position: -128px -128px; }
|
||||
.ui-icon-scissors { background-position: -144px -128px; }
|
||||
.ui-icon-clipboard { background-position: -160px -128px; }
|
||||
.ui-icon-copy { background-position: -176px -128px; }
|
||||
.ui-icon-contact { background-position: -192px -128px; }
|
||||
.ui-icon-image { background-position: -208px -128px; }
|
||||
.ui-icon-video { background-position: -224px -128px; }
|
||||
.ui-icon-script { background-position: -240px -128px; }
|
||||
.ui-icon-alert { background-position: 0 -144px; }
|
||||
.ui-icon-info { background-position: -16px -144px; }
|
||||
.ui-icon-notice { background-position: -32px -144px; }
|
||||
.ui-icon-help { background-position: -48px -144px; }
|
||||
.ui-icon-check { background-position: -64px -144px; }
|
||||
.ui-icon-bullet { background-position: -80px -144px; }
|
||||
.ui-icon-radio-off { background-position: -96px -144px; }
|
||||
.ui-icon-radio-on { background-position: -112px -144px; }
|
||||
.ui-icon-pin-w { background-position: -128px -144px; }
|
||||
.ui-icon-pin-s { background-position: -144px -144px; }
|
||||
.ui-icon-play { background-position: 0 -160px; }
|
||||
.ui-icon-pause { background-position: -16px -160px; }
|
||||
.ui-icon-seek-next { background-position: -32px -160px; }
|
||||
.ui-icon-seek-prev { background-position: -48px -160px; }
|
||||
.ui-icon-seek-end { background-position: -64px -160px; }
|
||||
.ui-icon-seek-first { background-position: -80px -160px; }
|
||||
.ui-icon-stop { background-position: -96px -160px; }
|
||||
.ui-icon-eject { background-position: -112px -160px; }
|
||||
.ui-icon-volume-off { background-position: -128px -160px; }
|
||||
.ui-icon-volume-on { background-position: -144px -160px; }
|
||||
.ui-icon-power { background-position: 0 -176px; }
|
||||
.ui-icon-signal-diag { background-position: -16px -176px; }
|
||||
.ui-icon-signal { background-position: -32px -176px; }
|
||||
.ui-icon-battery-0 { background-position: -48px -176px; }
|
||||
.ui-icon-battery-1 { background-position: -64px -176px; }
|
||||
.ui-icon-battery-2 { background-position: -80px -176px; }
|
||||
.ui-icon-battery-3 { background-position: -96px -176px; }
|
||||
.ui-icon-circle-plus { background-position: 0 -192px; }
|
||||
.ui-icon-circle-minus { background-position: -16px -192px; }
|
||||
.ui-icon-circle-close { background-position: -32px -192px; }
|
||||
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
|
||||
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
|
||||
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
|
||||
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
|
||||
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
|
||||
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
|
||||
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
|
||||
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
|
||||
.ui-icon-circle-zoomin { background-position: -176px -192px; }
|
||||
.ui-icon-circle-zoomout { background-position: -192px -192px; }
|
||||
.ui-icon-circle-check { background-position: -208px -192px; }
|
||||
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
|
||||
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
|
||||
.ui-icon-circlesmall-close { background-position: -32px -208px; }
|
||||
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
|
||||
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
|
||||
.ui-icon-squaresmall-close { background-position: -80px -208px; }
|
||||
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
|
||||
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
|
||||
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
|
||||
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
|
||||
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
|
||||
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
|
||||
|
||||
|
||||
/* Misc visuals
|
||||
----------------------------------*/
|
||||
|
||||
/* Corner radius */
|
||||
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
|
||||
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
|
||||
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
|
||||
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
|
||||
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
|
||||
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
|
||||
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
|
||||
|
||||
/* Overlays */
|
||||
.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
|
||||
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; }/* Accordion
|
||||
----------------------------------*/
|
||||
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
|
||||
.ui-accordion .ui-accordion-li-fix { display: inline; }
|
||||
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
|
||||
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
|
||||
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
|
||||
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
|
||||
.ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
|
||||
----------------------------------*/
|
||||
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
|
||||
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
|
||||
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
|
||||
.ui-datepicker .ui-datepicker-prev { left:2px; }
|
||||
.ui-datepicker .ui-datepicker-next { right:2px; }
|
||||
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
|
||||
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
|
||||
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
|
||||
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
|
||||
.ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
|
||||
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
|
||||
.ui-datepicker select.ui-datepicker-month,
|
||||
.ui-datepicker select.ui-datepicker-year { width: 49%;}
|
||||
.ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
|
||||
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
|
||||
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
|
||||
.ui-datepicker td { border: 0; padding: 1px; }
|
||||
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
||||
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
|
||||
|
||||
/* with multiple calendars */
|
||||
.ui-datepicker.ui-datepicker-multi { width:auto; }
|
||||
.ui-datepicker-multi .ui-datepicker-group { float:left; }
|
||||
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
|
||||
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
|
||||
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
|
||||
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
|
||||
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
|
||||
.ui-datepicker-row-break { clear:both; width:100%; }
|
||||
|
||||
/* RTL support */
|
||||
.ui-datepicker-rtl { direction: rtl; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
|
||||
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
|
||||
|
||||
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
||||
.ui-datepicker-cover {
|
||||
display: none; /*sorry for IE5*/
|
||||
display/**/: block; /*sorry for IE5*/
|
||||
position: absolute; /*must have*/
|
||||
z-index: -1; /*must have*/
|
||||
filter: mask(); /*must have*/
|
||||
top: -4px; /*must have*/
|
||||
left: -4px; /*must have*/
|
||||
width: 200px; /*must have*/
|
||||
height: 200px; /*must have*/
|
||||
}/* Dialog
|
||||
----------------------------------*/
|
||||
.ui-dialog { position: relative; padding: .2em; width: 300px; }
|
||||
.ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
|
||||
.ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
|
||||
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
|
||||
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
|
||||
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
|
||||
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
|
||||
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
|
||||
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
|
||||
.ui-draggable .ui-dialog-titlebar { cursor: move; }
|
||||
/* Progressbar
|
||||
----------------------------------*/
|
||||
.ui-progressbar { height:2em; text-align: left; }
|
||||
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
|
||||
----------------------------------*/
|
||||
.ui-resizable { position: relative;}
|
||||
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
|
||||
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
|
||||
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
|
||||
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
|
||||
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
|
||||
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
|
||||
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
|
||||
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
|
||||
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
|
||||
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
|
||||
----------------------------------*/
|
||||
.ui-slider { position: relative; text-align: left; }
|
||||
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
|
||||
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
|
||||
|
||||
.ui-slider-horizontal { height: .8em; }
|
||||
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
|
||||
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
|
||||
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
|
||||
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
|
||||
|
||||
.ui-slider-vertical { width: .8em; height: 100px; }
|
||||
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
|
||||
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
|
||||
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
|
||||
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
|
||||
----------------------------------*/
|
||||
.ui-tabs { padding: .2em; zoom: 1; }
|
||||
.ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
|
||||
.ui-tabs .ui-tabs-nav li { position: relative; float: left; border-bottom-width: 0 !important; margin: 0 .2em -1px 0; padding: 0; }
|
||||
.ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
|
||||
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
|
||||
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
|
||||
.ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
|
||||
.ui-tabs .ui-tabs-hide { display: none !important; }
|
||||
@@ -20,9 +20,6 @@
|
||||
<code>SAMOA</code>
|
||||
<code>AP</code>
|
||||
</temple>
|
||||
<temple name="Arequipa Peru Temple">
|
||||
<code>AREQU</code>
|
||||
</temple>
|
||||
<temple name="Asuncion, Paraguay">
|
||||
<code>ASUNC</code>
|
||||
</temple>
|
||||
@@ -30,9 +27,6 @@
|
||||
<code>ATLAN</code>
|
||||
<code>AT</code>
|
||||
</temple>
|
||||
<temple name="Barranquilla Colombia Temple">
|
||||
<code>BARRA</code>
|
||||
</temple>
|
||||
<temple name="Baton Rouge, Louisiana">
|
||||
<code>BROUG</code>
|
||||
</temple>
|
||||
@@ -63,9 +57,6 @@
|
||||
<temple name="Bountiful, Utah">
|
||||
<code>BOUNT</code>
|
||||
</temple>
|
||||
<temple name="Brigham City Utah Temple">
|
||||
<code>BRIGH</code>
|
||||
</temple>
|
||||
<temple name="Brisbane, Australia">
|
||||
<code>BRISB</code>
|
||||
</temple>
|
||||
@@ -88,12 +79,8 @@
|
||||
<code>ALBR</code>
|
||||
</temple>
|
||||
<temple name="Cebu, Philippines">
|
||||
<code>CEBUP</code>
|
||||
<code>CEBU</code>
|
||||
</temple>
|
||||
<temple name="Cedar City Utah">
|
||||
<code>CEDAR</code>
|
||||
</temple>
|
||||
<temple name="Chicago, Illinois">
|
||||
<code>CHICA</code>
|
||||
<code>CH</code>
|
||||
@@ -107,18 +94,15 @@
|
||||
<temple name="Colonia Juarez, Chihuahua, Mexico">
|
||||
<code>COLJU</code>
|
||||
</temple>
|
||||
<temple name="Columbia River, Washington">
|
||||
<code>CRIVE</code>
|
||||
</temple>
|
||||
<temple name="Columbia, South Carolina">
|
||||
<code>COLSC</code>
|
||||
</temple>
|
||||
<temple name="Columbia River, Washington">
|
||||
<code>CRIVE</code>
|
||||
</temple>
|
||||
<temple name="Columbus, Ohio">
|
||||
<code>COLUM</code>
|
||||
</temple>
|
||||
<temple name="Concepción Chile">
|
||||
<code>CONCE</code>
|
||||
</temple>
|
||||
<temple name="Copenhagen, Denmark">
|
||||
<code>COPEN</code>
|
||||
</temple>
|
||||
@@ -145,19 +129,6 @@
|
||||
<temple name="Edmonton, Alberta">
|
||||
<code>EDMON</code>
|
||||
</temple>
|
||||
<temple name="Endowment House">
|
||||
<code>EHOUS</code>
|
||||
<code>EH</code>
|
||||
</temple>
|
||||
<temple name="Fort Collins Colorado">
|
||||
<code>FORTC</code>
|
||||
</temple>
|
||||
<temple name="Fort Lauderdale Florida">
|
||||
<code>FORTL</code>
|
||||
</temple>
|
||||
<temple name="Fortaleza Brazil">
|
||||
<code>FORTA</code>
|
||||
</temple>
|
||||
<temple name="Frankfurt, Germany">
|
||||
<code>FRANK</code>
|
||||
<code>FR</code>
|
||||
@@ -220,9 +191,6 @@
|
||||
<code>IFALL</code>
|
||||
<code>IF</code>
|
||||
</temple>
|
||||
<temple name="Indianapolis Indiana">
|
||||
<code>INDIA</code>
|
||||
</temple>
|
||||
<temple name="Johannesburg, South Africa">
|
||||
<code>JOHAN</code>
|
||||
<code>JO</code>
|
||||
@@ -234,14 +202,10 @@
|
||||
<temple name="Kansas City, Missouri">
|
||||
<code>KANSA</code>
|
||||
</temple>
|
||||
<temple name="Kinshasa Democratic Republic of the Congo">
|
||||
<code>KINSH</code>
|
||||
</temple>
|
||||
<temple name="Kona, Hawaii">
|
||||
<code>KONA</code>
|
||||
</temple>
|
||||
<temple name="Kiev, Ukraine">
|
||||
<code>KYIV</code>
|
||||
<code>KIEV</code>
|
||||
</temple>
|
||||
<temple name="Kirtland, Ohio">
|
||||
@@ -259,9 +223,6 @@
|
||||
<code>LIMA</code>
|
||||
<code>LI</code>
|
||||
</temple>
|
||||
<temple name="Lisbon Portugal">
|
||||
<code>LISBO</code>
|
||||
</temple>
|
||||
<temple name="Logan, Utah">
|
||||
<code>LOGAN</code>
|
||||
<code>LG</code>
|
||||
@@ -309,9 +270,6 @@
|
||||
<temple name="Merida, Mexico">
|
||||
<code>MERID</code>
|
||||
</temple>
|
||||
<temple name="Meridian Idaho">
|
||||
<code>MIDAH</code>
|
||||
</temple>
|
||||
<temple name="Mesa, Arizona">
|
||||
<code>ARIZO</code>
|
||||
<code>AZ</code>
|
||||
@@ -367,7 +325,6 @@
|
||||
<code>OKLAH</code>
|
||||
</temple>
|
||||
<temple name="Oquirrh Mountain, Utah">
|
||||
<code>OQUIR</code>
|
||||
<code>OMOUN</code>
|
||||
</temple>
|
||||
<temple name="Orlando, Florida">
|
||||
@@ -383,12 +340,6 @@
|
||||
<code>PAPEE</code>
|
||||
<code>TA</code>
|
||||
</temple>
|
||||
<temple name="Paris France">
|
||||
<code>PARIS</code>
|
||||
</temple>
|
||||
<temple name="Payson Utah">
|
||||
<code>PAYSO</code>
|
||||
</temple>
|
||||
<temple name="Perth, Australia">
|
||||
<code>PERTH</code>
|
||||
</temple>
|
||||
@@ -398,9 +349,6 @@
|
||||
<temple name="Phoenix, Arizona">
|
||||
<code>PHOEN</code>
|
||||
</temple>
|
||||
<temple name="Port-au-Prince Haiti">
|
||||
<code>PORTA</code>
|
||||
</temple>
|
||||
<temple name="Portland, Oregon">
|
||||
<code>PORTL</code>
|
||||
<code>PT</code>
|
||||
@@ -411,9 +359,6 @@
|
||||
<temple name="Preston, England">
|
||||
<code>PREST</code>
|
||||
</temple>
|
||||
<temple name="Provo City Center, Utah">
|
||||
<code>PROCC</code>
|
||||
</temple>
|
||||
<temple name="Provo, Utah">
|
||||
<code>PROVO</code>
|
||||
<code>PV</code>
|
||||
@@ -440,7 +385,6 @@
|
||||
<code>REXBU</code>
|
||||
</temple>
|
||||
<temple name="Rome, Italy">
|
||||
<code>ROMEI</code>
|
||||
<code>ROME</code>
|
||||
</temple>
|
||||
<temple name="Sacramento, California">
|
||||
@@ -450,6 +394,12 @@
|
||||
<code>SGEOR</code>
|
||||
<code>SG</code>
|
||||
</temple>
|
||||
<temple name="St. Louis, Missouri">
|
||||
<code>SLOUI</code>
|
||||
</temple>
|
||||
<temple name="St. Paul, Minnesota">
|
||||
<code>SPMIN</code>
|
||||
</temple>
|
||||
<temple name="Salt Lake City, Utah">
|
||||
<code>SLAKE</code>
|
||||
<code>SL</code>
|
||||
@@ -465,7 +415,6 @@
|
||||
<code>SJOSE</code>
|
||||
</temple>
|
||||
<temple name="San Salvador, El Salvador">
|
||||
<code>SANSA</code>
|
||||
<code>SSALV</code>
|
||||
</temple>
|
||||
<temple name="Santiago, Chile">
|
||||
@@ -479,9 +428,6 @@
|
||||
<code>SPAUL</code>
|
||||
<code>SP</code>
|
||||
</temple>
|
||||
<temple name="Sapporo Japan">
|
||||
<code>SAPPO</code>
|
||||
</temple>
|
||||
<temple name="Seattle, Washington">
|
||||
<code>SEATT</code>
|
||||
<code>SE</code>
|
||||
@@ -496,15 +442,6 @@
|
||||
<temple name="Spokane, Washington">
|
||||
<code>SPOKA</code>
|
||||
</temple>
|
||||
<temple name="St. Louis, Missouri">
|
||||
<code>SLOUI</code>
|
||||
</temple>
|
||||
<temple name="St. Paul, Minnesota">
|
||||
<code>SPMIN</code>
|
||||
</temple>
|
||||
<temple name="Star Valley Wyoming">
|
||||
<code>STARV</code>
|
||||
</temple>
|
||||
<temple name="Stockholm, Sweden">
|
||||
<code>STOCK</code>
|
||||
<code>ST</code>
|
||||
@@ -526,15 +463,9 @@
|
||||
<temple name="Tegucigalpa, Honduras">
|
||||
<code>TEGUC</code>
|
||||
</temple>
|
||||
<temple name="The Gila Valley Arizona">
|
||||
<code>GILAV</code>
|
||||
</temple>
|
||||
<temple name="The Hague, Netherlands">
|
||||
<code>HAGUE</code>
|
||||
</temple>
|
||||
<temple name="Tijuana Mexico">
|
||||
<code>TIJUA</code>
|
||||
</temple>
|
||||
<temple name="Tokyo, Japan">
|
||||
<code>TOKYO</code>
|
||||
<code>TK</code>
|
||||
@@ -544,18 +475,12 @@
|
||||
<code>TORNO</code>
|
||||
<code>TR</code>
|
||||
</temple>
|
||||
<temple name="Trujillo, Peru">
|
||||
<code>TRUJI</code>
|
||||
</temple>
|
||||
<temple name="Tucson Arizona">
|
||||
<code>TUCSO</code>
|
||||
</temple>
|
||||
<temple name="Tuxtla Gutierrez, Mexico">
|
||||
<code>TGUTI</code>
|
||||
</temple>
|
||||
<temple name="Twin Falls, Idaho">
|
||||
<code>TWINF</code>
|
||||
<code>TFALL</code>
|
||||
<code>TWINF</code>
|
||||
</temple>
|
||||
<temple name="Vancouver, British Columbia">
|
||||
<code>VANCO</code>
|
||||
@@ -577,6 +502,10 @@
|
||||
<code>WINTE</code>
|
||||
<code>WQUAR</code>
|
||||
</temple>
|
||||
<temple name="Endowment House">
|
||||
<code>EHOUS</code>
|
||||
<code>EH</code>
|
||||
</temple>
|
||||
<temple name="President's Office">
|
||||
<code>POFFI</code>
|
||||
<code>PO</code>
|
||||
|
||||
@@ -13,8 +13,8 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *DATABASE*
|
||||
[**-f** | **--format=** *FORMAT*] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**--remove=** *FAMILY_TREE_PATTERN*]
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-e** | **--export=** *FILE* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *OPTION‐
|
||||
STRING*]] [*FILE*] [**--version**]
|
||||
@@ -50,23 +50,23 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
Formats available for export are **gramps-xml** (guessed if *FILE*
|
||||
ends with **.gramps** ), **gedcom** (guessed if *FILE* ends with
|
||||
**.ged** ), or any file export available through the Gramps plugin
|
||||
**.ged** ), or any file export available through the Gramps plugin
|
||||
system.
|
||||
|
||||
Formats available for import are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** (guessed if *FILE* ends with **.gpkg** ),
|
||||
and **geneweb** (guessed if *FILE* ends with **.gw** ).
|
||||
|
||||
Formats available for export are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** , **wft** (guessed if *FILE* ends with **.wft** ),
|
||||
Formats available for export are **gramps-xml** , **gedcom** ,
|
||||
**gramps-pkg** , **wft** (guessed if *FILE* ends with **.wft** ),
|
||||
**geneweb**.
|
||||
|
||||
|
||||
**-l**
|
||||
**-l**
|
||||
Print a list of known family trees.
|
||||
|
||||
|
||||
**-L**
|
||||
|
||||
|
||||
**-L**
|
||||
Print a detailed list of known family trees.
|
||||
|
||||
|
||||
@@ -88,16 +88,16 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
When more than one input file is given, each has to be preceded
|
||||
by **-i** flag. The files are imported in the specified order, i.e.
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
**-i** *FILE1* **-i** *FILE2* and **-i** *FILE2* **-i** *FILE1*
|
||||
might produce different gramps IDs in the resulting database.
|
||||
|
||||
|
||||
**-e** , **--export=** *FILE*
|
||||
Export data into *FILE* . For **gramps-xml** , **gedcom**
|
||||
, **wft** , **gramps-pkg** , and **geneweb** , the *FILE* is the
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Export data into *FILE* . For **gramps-xml** , **gedcom**
|
||||
, **wft** , **gramps-pkg** , et **geneweb** , the *FILE* is the
|
||||
name of the resulting file.
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
|
||||
When more than one output file is given, each has to be preceded
|
||||
by **-e** flag. The files are written one by one, in the specified order.
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
With or without the **-O** flag, there could be multiple imports, exports,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
and actions specified further on the command line by using **-i** ,
|
||||
**-e** , and **-a** flags.
|
||||
|
||||
|
||||
@@ -194,46 +194,46 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**EXAMPLES**
|
||||
To open an existing family tree and import an xml file into it, one
|
||||
may type:
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
The above changes the opened family tree, to do the same, but import
|
||||
both in a temporary family tree and start an interactive session, one
|
||||
may type:
|
||||
|
||||
|
||||
**gramps -i** *'My Family Tree'* **-i** *~/db3.gramps*
|
||||
|
||||
To import four databases (whose formats can be determined from their
|
||||
names) and then check the resulting database for errors, one may type:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
To explicitly specify the formats in the above example, append file‐
|
||||
names with appropriate **-f** options:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
To record the database resulting from all imports, supply **-e** flag (use
|
||||
**-f** if the filename does not allow gramps to guess the format):
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
To import three databases and start interactive gramps session with the
|
||||
result:
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
To run the Verify tool from the commandline and output the result to
|
||||
stdout:
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Finally, to start normal interactive session type:
|
||||
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
@@ -257,20 +257,20 @@ gramps(1) @VERSION@ gramps(1)
|
||||
modification of the main program.
|
||||
|
||||
In addition to generating direct printer output, report generators also
|
||||
target other systems, such as *LibreOffice.org* , *AbiWord* , *HTML*,
|
||||
target other systems, such as *LibreOffice.org* , *AbiWord* , *HTML*,
|
||||
or *LaTeX* to allow the users to modify the format to suit their needs.
|
||||
|
||||
|
||||
**KNOWN BUGS AND LIMITATIONS**
|
||||
|
||||
**FILES**
|
||||
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python3/dist-packages/gramps/*
|
||||
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
@@ -290,8 +290,8 @@ gramps(1) @VERSION@ gramps(1)
|
||||
The user documentation is available through standard web browser
|
||||
in the form of Gramps Manual.
|
||||
|
||||
The developer documentation can be found on the
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
The developer documentation can be found on the
|
||||
http://www.gramps-project.org/wiki/index.php?title=Portal:Developers
|
||||
portal.
|
||||
|
||||
|
||||
|
||||
@@ -13,10 +13,11 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
**SYNOPSIS**
|
||||
**gramps** [**-?** | **--help**] [**--usage**] [**--version**]
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *BASE_DE_DONNEES*]
|
||||
[**-f** | **--format=** *FORMAT*] [**-i** | **--import=** *FICHIER*]
|
||||
[**-e** | **--export=** *FICHIER*] [**--remove=** *FAMILY_TREE_PATTERN*]
|
||||
[**-a** | **--action=** *ACTION* [*-p* | **--options=** *CHAÎNE‐
|
||||
[**-l**] [**-L**] [**-u** | **--force-unlock**] [**-O** | **--open=** *BASE_DE_DONNEES*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *FILE*
|
||||
[**-f** | **--format=** *FORMAT*]] [**-i** | **--import=** *...*]
|
||||
[**-e** | **--export=** *FICHIER* [**-f** | **--format=** *FORMAT*]]
|
||||
[**-a** | **--action=** *ACTION*] [*-p* | **--options=** *CHAÎNE‐
|
||||
OPTION*]] [*FICHIER*] [**--version**]
|
||||
|
||||
|
||||
@@ -60,7 +61,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**geneweb** .
|
||||
|
||||
|
||||
**-l**
|
||||
**-l**
|
||||
Imprime une liste des arbres familiaux disponibles.
|
||||
|
||||
|
||||
@@ -91,11 +92,11 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
|
||||
**-e** , **--export=** *FICHIER*
|
||||
Exporter des données dans un *FICHIER* . Pour les fichiers **gramps-xml**
|
||||
, **gedcom** , **wft** , **gramps-pkg** , et **geneweb** , le
|
||||
Exporter des données dans un *FICHIER* . Pour les fichiers **gramps-xml**
|
||||
, **gedcom** , **wft** , **gramps-pkg** , et **geneweb** , le
|
||||
*FICHIER* est le nom du fichier de sortie.
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être
|
||||
|
||||
Quand plus d'un fichier doit être exporté, chacun doit être
|
||||
précédé par la commande **-e** . Ces fichiers sont importés dans le
|
||||
même ordre.
|
||||
|
||||
@@ -120,7 +121,7 @@ gramps(1) @VERSION@ gramps(1)
|
||||
|
||||
**name=name**
|
||||
Cette option est obligatoire, elle détermine quel rapport ou
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
outil sera utilisé. Si le name saisi ne correspond à aucun
|
||||
module disponible, un message d'erreur sera ajouté.
|
||||
|
||||
**show=all**
|
||||
@@ -183,54 +184,54 @@ gramps(1) @VERSION@ gramps(1)
|
||||
Les erreurs rencontrées lors d'importation, d'exportation, ou d'action, seront
|
||||
mémorisées en *stdout* (si elles sont le fait de la manipulation par
|
||||
gramps) ou en *stderr* (si elles ne sont pas le fait d'une manipulation).
|
||||
Utilisez les shell de redirection de *stdout* et *stderr* pour sauver
|
||||
Utilisez les shell de redirection de *stdout* et *stderr* pour sauver
|
||||
les messages et les erreurs dans les fichiers.
|
||||
|
||||
|
||||
**EXEMPLES**
|
||||
Pour ouvrir un arbre familial et y importer un fichier XML, on peut
|
||||
saisir:
|
||||
|
||||
|
||||
**gramps -O** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Ceci ouvre un arbre familial, pour faire la même chose, mais importer
|
||||
dans un arbre familial temporaire et démarrer une session interactive,
|
||||
on peut saisir :
|
||||
|
||||
|
||||
**gramps -i** *'Mon Arbre Familial'* **-i** *~/db3.gramps*
|
||||
|
||||
Lecture de quatre bases de données dont les formats peuvent être
|
||||
devinés d'après les noms, puis vérification des données:
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
**-i** *file4.wft* **-a** *check*
|
||||
|
||||
|
||||
Si vous voulez préciser lesformats de fichiers dans l'exemple ci-
|
||||
dessus, complétez les noms de fichiers par les options -f appropriées:
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
|
||||
**gramps -i** *file1.ged* **-f** *gedcom* **-i** *file2.tgz* **-f**
|
||||
*gramps-pkg* **-i** *~/db3.gramps* **-f** *gramps-xml* **-i** *file4.wft*
|
||||
**-f** *wft* **-a** *check*
|
||||
|
||||
Pour enregistrer le résultat des lectures, donnez l'option **-e**
|
||||
|
||||
Pour enregistrer le résultat des lectures, donnez l'option **-e**
|
||||
(utiliser -f si le nom de fichier ne permet pas à gramps de deviner le
|
||||
format):
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-e** *~/new-package*
|
||||
**-f** *gramps-pkg*
|
||||
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
|
||||
Pour lire trois ensembles de données puis lancer une session
|
||||
interactive de gramps sur le tout :
|
||||
|
||||
|
||||
**gramps -i** *file1.ged* **-i** *file2.tgz* **-i** *~/db3.gramps*
|
||||
|
||||
Pour lancer l'outil de vérification de la base de données depuis la
|
||||
ligne de commande et obtenir le résultat :
|
||||
|
||||
|
||||
**gramps -O** *'My Family Tree'* **-a** *tool* **-p name=** *verify*
|
||||
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
|
||||
Enfin, pour lancer une session interactive normale, entrer :
|
||||
|
||||
**gramps**
|
||||
|
||||
|
||||
@@ -264,11 +265,11 @@ gramps(1) @VERSION@ gramps(1)
|
||||
**FICHIERS**
|
||||
|
||||
*${PREFIX}/bin/gramps*
|
||||
|
||||
*${PREFIX}/lib/python3/dist-packages/gramps/*
|
||||
|
||||
|
||||
*${PREFIX}/lib/python/dist-packages/gramps/*
|
||||
|
||||
*${PREFIX}/share/*
|
||||
|
||||
|
||||
*${HOME}/.gramps*
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
.\" Man page generated from reStructuredText.
|
||||
.
|
||||
.TH FRENCH "" "" ""
|
||||
.TH "GRAMPS" "1" "09 March 2015" "4.2" "Gramps"
|
||||
.SH NAME
|
||||
French \-
|
||||
gramps \- Gramps Documentation
|
||||
.
|
||||
.nr rst2man-indent-level 0
|
||||
.
|
||||
@@ -30,6 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
||||
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
||||
..
|
||||
.\" Man page generated from reStructeredText.
|
||||
.
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.INDENT 0.0
|
||||
@@ -42,10 +42,11 @@ données généalogiques)
|
||||
.TP
|
||||
.B \fBSYNOPSIS\fP
|
||||
\fBgramps\fP [\fB\-?\fP | \fB\-\-help\fP] [\fB\-\-usage\fP] [\fB\-\-version\fP]
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP]
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP] [\fB\-i\fP | \fB\-\-import=\fP \fIFICHIER\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFICHIER\fP] [\fB\-\-remove=\fP \fIFAMILY_TREE_PATTERN\fP]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP [\fI\-p\fP | \fB\-\-options=\fP \fICHAÎNE‐
|
||||
[\fB\-l\fP] [\fB\-L\fP] [\fB\-u\fP | \fB\-\-force\-unlock\fP] [\fB\-O\fP | \fB\-\-open=\fP \fIBASE_DE_DONNEES\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fIFILE\fP
|
||||
[\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]] [\fB\-i\fP | \fB\-\-import=\fP \fI...\fP]
|
||||
[\fB\-e\fP | \fB\-\-export=\fP \fIFICHIER\fP [\fB\-f\fP | \fB\-\-format=\fP \fIFORMAT\fP]]
|
||||
[\fB\-a\fP | \fB\-\-action=\fP \fIACTION\fP] [\fI\-p\fP | \fB\-\-options=\fP \fICHAÎNE‐
|
||||
OPTION\fP]] [\fIFICHIER\fP] [\fB\-\-version\fP]
|
||||
.TP
|
||||
.B \fBDESCRIPTION\fP
|
||||
@@ -75,16 +76,16 @@ Le format spécifique du \fIFICHIER\fP est précédé par les arguments
|
||||
alors le format sera celui de l\(aqextension ou du type\-MIME.
|
||||
.sp
|
||||
Les formats de sortie disponibles sont \fBgramps\-xml\fP (deviné si
|
||||
\fIFICHIER\fP se termine par \fB\&.gramps\fP ), et \fBgedcom\fP (deviné si \fIFICHIER\fP se
|
||||
termine par \fB\&.ged\fP ), ou tout autre fichier d\(aqexportation
|
||||
\fIFICHIER\fP se termine par \fB.gramps\fP ), et \fBgedcom\fP (deviné si \fIFICHIER\fP se
|
||||
termine par \fB.ged\fP ), ou tout autre fichier d\(aqexportation
|
||||
disponible dans le système de plugin Gramps.
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqimportation sont \fBgrdb\fP ,
|
||||
\fBgramps\-xml\fP , \fBgedcom\fP , \fBgramps\-pkg\fP (deviné si \fIFICHIER\fP se termine par
|
||||
\fB\&.gpkg\fP ), et \fBgeneweb\fP (deviné si \fIFICHIER\fP se termine par \fB\&.gw\fP ).
|
||||
\fB.gpkg\fP ), et \fBgeneweb\fP (deviné si \fIFICHIER\fP se termine par \fB.gw\fP ).
|
||||
.sp
|
||||
Les formats disponibles pour l\(aqexportation sont \fBgramps\-xml\fP , \fBged‐
|
||||
com\fP , \fBgramps\-pkg\fP , \fBwft\fP (deviné si \fIFICHIER\fP se termine par \fB\&.wft\fP ),
|
||||
com\fP , \fBgramps\-pkg\fP , \fBwft\fP (deviné si \fIFICHIER\fP se termine par \fB.wft\fP ),
|
||||
\fBgeneweb\fP .
|
||||
.TP
|
||||
.B \fB\-l\fP
|
||||
@@ -192,7 +193,7 @@ fenêtre et demarrera avec une base vide, puisqu\(aqil n\(aqy a pas données.
|
||||
.sp
|
||||
Si aucune option \fB\-e\fP ou \fB\-a\fP n\(aqest donnée, gramps lancera sa propre
|
||||
fenêtre et démarrera avec la base de données issue de tout les imports.
|
||||
Cette base sera \fBimport_db.grdb\fP dans le répertoire \fB~/.gramps/import\fP\&.
|
||||
Cette base sera \fBimport_db.grdb\fP dans le répertoire \fB~/.gramps/import\fP.
|
||||
.sp
|
||||
Les erreurs rencontrées lors d\(aqimportation, d\(aqexportation, ou d\(aqaction, seront
|
||||
mémorisées en \fIstdout\fP (si elles sont le fait de la manipulation par
|
||||
@@ -301,7 +302,7 @@ besoins
|
||||
.INDENT 3.5
|
||||
\fI${PREFIX}/bin/gramps\fP
|
||||
.sp
|
||||
\fI${PREFIX}/lib/python3/dist\-packages/gramps/\fP
|
||||
\fI${PREFIX}/lib/python/dist\-packages/gramps/\fP
|
||||
.sp
|
||||
\fI${PREFIX}/share/\fP
|
||||
.sp
|
||||
@@ -333,5 +334,10 @@ La documentation pour développeur est disponible sur le site
|
||||
.UNINDENT
|
||||
.sp
|
||||
gramps(1) @VERSION@ gramps(1)
|
||||
.SH AUTHOR
|
||||
Jerome Rapinat
|
||||
.SH COPYRIGHT
|
||||
2015, Gramps project
|
||||
.\" Generated by docutils manpage writer.
|
||||
.\"
|
||||
.
|
||||
|
||||